R-如何筛选出具有唯一标识符的重复数据?
我有一个数据集是调查数据。如果我使用distinct(x),代码将不会读取任何重复项,因为我有一个“Survey ID”列,该列将始终不同R-如何筛选出具有唯一标识符的重复数据?,r,dplyr,R,Dplyr,我有一个数据集是调查数据。如果我使用distinct(x),代码将不会读取任何重复项,因为我有一个“Survey 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",
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")
)
x我们可以在
library(dplyr)
x %>%
distinct_at(-1, .keep_all = TRUE)
如果要指定列名
x %>%
distinct_at(vars(Age, Gender), .keep_all = TRUE)
或者另一个选项是
unique
fromdata.table
library(data.table)
unique(setDT(x), by = names(x)[-1])
也可以对除第一列以外的所有列执行以下操作:
x[!duplicated(x[,-1]),]
或对于选定列:
x[!duplicated(x[,c("Age","Gender"),])
两者都将保留第一个复制行。这太完美了!如果我只想过滤某些列呢?就像我的数据集x中的“年龄”和“性别”列一样?谢谢,这太棒了!我真的很感谢你的帮助!
x[!duplicated(x[,c("Age","Gender"),])