我有一个数据集是调查数据。如果我使用 distinct(x),代码将不会读取任何重复项,因为我有一个始终不同的“调查 ID”列。
x <- data.frame("Survey ID" = 1001:1008,
"First Initial" = c("M","P","S","B","H", "P", "L", "A"),
"Last Initial" = c("S","J", "A", "P", "Q", "J", "P", "C"),
"Age" = c(34,41,52,61,25,41,19,58),
"Gender" = c("M", "M", "M", "F","M","M","F","M"),
"Ethnicity" = c(2,2,1,1,3,2,1,4),
"Veteran Status" = c("A","Y","N","Y","N","Y","N","N")
)
我可以用
y <- distinct(x[,-1])
它过滤掉了调查 ID,但我需要新数据集中的调查 ID。如何删除重复项但保留重复行之一的调查 ID?
谢谢
最佳答案
我们可以使用 distinct_at
library(dplyr)
x %>%
distinct_at(-1, .keep_all = TRUE)
如果我们要指定列名
x %>%
distinct_at(vars(Age, Gender), .keep_all = TRUE)
或者另一个选项是来自
unique
的 data.table
library(data.table)
unique(setDT(x), by = names(x)[-1])
关于R - 如何过滤掉具有唯一标识符的重复数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59271041/