0

2 つの大きなデータ フレームから一致する 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  ), ]  

これは正しいコマンドですか?

次のように確認すると、0 が得られないため、このコマンドが意図したとおりに実行されているlength(which(dataset.exclusion$ParticipantId %in% exclusion$ParticipantId)) とは思いません。

洞察はありますか?

4

2 に答える 2

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
于 2013-10-07T16:49:42.487 に答える