R 按非唯一ID选择数据帧的子集

R 按非唯一ID选择数据帧的子集,r,selection,R,Selection,假设我有这样一个数据帧: df <- data.frame (id = c("a", "b", "a", "c", "e", "d", "e"), n=1:7) v <- c("a", "b") df使用 这应该满足您的要求: ndx = which(df$id %in% v) df[ndx,] 很明显,SO上需要的是一个专家的残疾时钟,比如说,在发布之前,将您的答案放在服务器上45秒左右——尽管大多数时间即使这样也帮不上我的忙。:)我只是在等marek过来告诉我们我们忘记了N

假设我有这样一个数据帧:

df <- data.frame (id = c("a", "b", "a", "c", "e", "d", "e"), n=1:7)
v <- c("a", "b")
df使用


这应该满足您的要求:

ndx = which(df$id %in% v)
df[ndx,]

很明显,SO上需要的是一个专家的残疾时钟,比如说,在发布之前,将您的答案放在服务器上45秒左右——尽管大多数时间即使这样也帮不上我的忙。:)我只是在等marek过来告诉我们我们忘记了NA值…实际上,为了处理v和id列中的NA值,我使用了这个:df[df$id%In%v[!is.NA(v)],]。。。实际上,%
中的
%与
NA
配合得很好。它将与任何其他值匹配
NA
(无论两个向量中哪一个包含
NA
)。换句话说,
NA%In%NA
返回
TRUE
@Marek:ha!我开始担心了。
df[df$id %in% v,]
ndx = which(df$id %in% v)
df[ndx,]