我有一个数据框,其中一些ID出现不止一次。我对此ID进行了唯一的采样,现在我有一个带有采样ID的向量。现在我需要创建一个逻辑,告诉我数据框中的哪些行也有我的样本上出现的ID。
我尝试了匹配功能,但它只选择了第一个外观,我需要所有外观。
我也尝试过合并,但数据集很大,所以没有内存可以做到。
答案 0 :(得分:2)
您可以使用%in%
获取逻辑向量,并使用which
和in
来获取行索引。这是一个包含重复ID的可重现示例。
set.seed(1234)
df <- data.frame(id=sample(1:80, 100, replace=TRUE), b=rnorm(100))
mySample <- seq(1, 80, by=6)
#logical vector length of nrow(df)
myRows <- df$id %in% mySample
# row indices
myIndices <- which(df$id %in% mySample)
答案 1 :(得分:2)
这是你可以使用match
(当你尝试这个功能时):
x=match(df$id, mySample, nomatch = 0) > 0
如果TRUE
出现在df$id
而mySample
出现FALSE
,则会为您提供which(x==T)
的逻辑向量。
检索相应的指数:
initalRoute