我问你这个问题,我相信它很容易解决。我有这个对象:
data<-as.data.frame(data)
colnames(data)<-c("A", "B", "C")
data
A B C
AA 5 6
AB 8 6
DC 5 4
AD 3 9
FE 2 8
AF 4 4
AG 2 0
而且我有一个名单:
common
AG
FE
AD
我想获得一个文件,在其中我找到与这些名称相关联的行:
newdata
A B C
AG 2 0
FE 2 8
AD 3 9
我尝试使用dplyr R包,使用此脚本,但它不起作用。
library(dplyr)
results <- data.frame()
for (r in 1:nrow(common)) {
dat.query3[r] <- filter(data, C == common[r,] )
write(dat.query3[r],file="myfile",append=TRUE)
df <- data.frame(list(dat.query3[r]))
newdata <- rbind(results, df)
}
答案 0 :(得分:3)
您不必使用dplyr
,只需将公共向量中的名称与数据的第一列匹配,如下所示:
newdata <- data[data[,1]%in%common,]
答案 1 :(得分:0)
另一种简单的方法可能是:
newdata <- data[data$A %in% common,]
newdata
# A B C
#4 AD 3 9
#5 FE 2 8
#7 AG 2 0