【发布时间】:2015-03-06 10:19:43
【问题描述】:
我有一个数据框,其中包含单个标识符的向量(6 个字母)和数字向量
我想使用取自另一个数据帧的元素向量(同样是 6 个字母标识符)对其进行子集化
这就是我所做的(在简化版本中,我的数据框有 200 多列和 64 行)
n = c(2, 3, 5, 7, 8, 1)
i = c("abazzz", "bbaxxx", "ccbeee","dddfre", "sdtyuo", "loatvz" )
c = c(10, 2, 10, 2, 12, 34)
df1 = data.frame(n, i, c)
attach(example)
这是我想将其元素用于子集的向量:
v<- c("abazzz", "ccbeee", "lllaaa")
这就是我对子集所做的事情
df2<-example[, i==abazzz | ccbeee | lllaaa]
这不起作用,我得到的错误是“abazzz”未找到(我尝试使用和不使用“”,我尝试使用命令子集,出现相同的错误)
此外,我想避免使用 or 运算符,因为我需要用于子集的向量有大约 50 个元素。所以,换句话说,我想做的是对 df2 进行子集化,以便仅使用他们的标识符(df1 中的列)提取那些已经出现在 df1 中的个人
写这个让我觉得这一定很容易做到,但我自己无法弄清楚,我尝试查找类似的问题但找不到我要找的东西。我希望有人可以帮助我,建议其他帖子或手册,以便我学习。谢谢!
【问题讨论】:
-
您必须使用引号
"abazzz",请不要使用attach数据集。使用%in%即。df1[df1$i %in% v,]