从大型两个大数据帧中删除匹配ID的最可靠方法是什么?
例如,我有一个不想联系的参与者列表(n = 200)。我想从我的100多个变量和200,000个观测数据集中删除它们。
这是我需要从数据集中删除的200个参与者ID的列表。
exclude=read.csv("/home/Project/file/excludeids.csv", header=TRUE, sep=",")
dataset.exclusion<- dataset[-which(exclude$ParticipantId %in% dataset$ParticipantId ), ]
这是正确的命令吗?
我不认为此命令正在执行我想要的操作,因为当我使用以下内容进行验证时:length(which(dataset.exclusion$ParticipantId %in% exclusion$ParticipantId))
我没有得到0。
有什么见解?
答案 0 :(得分:2)
您可以这样做:
sample1[!sample1$ParticipantID %in%
unique(exclusion$ParticipantId),]
答案 1 :(得分:1)
这样的东西?
library(data.table)
dataset <- data.table(
a = c(1,2,3,4,5,6),
b = c(11,12,13,14,15,16),
d = c(21,22,23,24,25,26)
)
setkeyv(dataset, c('a','b'))
ToExclude <- data.table(
a = c(1,2,3),
b = c(11,12,13)
)
dataset[!ToExclude]
# a b d
# 1: 4 14 24
# 2: 5 15 25
# 3: 6 16 26