R 在多个数据帧中搜索相同的项
我有一个data.frames列表[或者更准确地说,是指向它们的对象]。 其思想是在所有数据帧中搜索相同的项并提取行R 在多个数据帧中搜索相同的项,r,search,loops,dataframe,R,Search,Loops,Dataframe,我有一个data.frames列表[或者更准确地说,是指向它们的对象]。 其思想是在所有数据帧中搜索相同的项并提取行 search.list=c("f.201301","f.201302","f.201303") # data frames list column='Actor1Code' item='MNC' # this works: test1=f.201301[f.201301[,column]==item] test2=f.201302[f.201302[,column]==item
search.list=c("f.201301","f.201302","f.201303") # data frames list
column='Actor1Code'
item='MNC'
# this works:
test1=f.201301[f.201301[,column]==item]
test2=f.201302[f.201302[,column]==item]
test3=f.201303[f.201303[,column]==item]
test=rbind(test1,test2,test3)
# but this doesn't:
for (i in 1:length(search.list)) {
search.list[i][search.list[i][,column]==item]
}
Error in search.list[i][, column] : incorrect number of dimensions
使用以下命令:
result <- list()
for (i in 1:length(search.list))
{
x <- get(search.list[i])
result[[i]] <- x[x[,column]==item]
}
do.call(rbind, result)
结果可能作为@Ferdinands答案之外的简短解释:搜索.list[i]
是类型为字符的对象,而不是您要查找的数据.frame
。因此,在此字符上调用“[”
必须失败。get(search.list[i])
在当前环境中搜索变量名为search.list[i]
的对象,并返回ist。作为附加提示:您应该使用seq\u-alow(search.list)
而不是1:length(search.list)
因为这是相当安全的。或者您使用for(search.list中的search.item){x