【发布时间】:2016-06-21 06:44:17
【问题描述】:
示例数据:
dates=seq(as.POSIXct("2015-01-01 00:00:00"), as.POSIXct("2015-01-07 00:00:00"), by="day")
data=rnorm(7,1,2)
groupID=c(12,14,16,24,35,46,54)
DF=data.frame(Date=dates,Data=data,groupID=groupID)
BB=c(12,12,16,24,35,35)
DF[DF$groupID %in% BB,]
Date Data groupID
1 2015-01-01 4.4104202 12
3 2015-01-03 2.1557735 16
4 2015-01-04 -0.9880946 24
5 2015-01-05 -0.3396025 35
我需要根据向量 BB 中与 groupID 列匹配的值过滤数据框 DF。但是,如果BB 包含重复,则不会反映在结果中。
由于我的向量 BB 包含两个值 1 和两个 5,因此输出实际上应该是:
Date Data groupID
1 2015-01-01 4.4104202 12
1 2015-01-01 4.4104202 12
3 2015-01-03 2.1557735 16
4 2015-01-04 -0.9880946 24
5 2015-01-05 -0.3396025 35
5 2015-01-05 -0.3396025 35
有没有办法做到这一点?并尽可能保持向量BB 的顺序?
【问题讨论】:
-
我可以看到我的问题是如何出现的。我现在已经编辑过了。我的“BB”向量需要匹配 groupID 列,所以恐怕我不能使用行标签。
-
那么可能是
DF[match(BB, DF$groupID),]?
标签: r vector dataframe subset repeat