我有很多大型DF,我想循环使用它们。我没有把它们绑定在一起制作一个大清单,而是认为我应该用它们的名字制作一个简单的矢量并看看它们,但我怎么能这样做呢?
例如我有:
DF1 <- data.frame(c("a", "b", "c"),c(TRUE, FALSE, TRUE))
DF2 <- data.frame(c("aa", "bb", "cc"),c(FALSE, FALSE, TRUE))
DF3 <- data.frame(c("aaa", "bbb", "ccc"),c(TRUE, FALSE, FALSE))
MyDFs <- c("DF1", "DF2", "DF3")
for (i in MyDFs) {
print(nrow(i))
}
但for循环不起作用,因为R不会将它们识别为DF,我该如何纠正?这也是最好的方法吗?
答案 0 :(得分:1)
或者
sapply(mget(MyDFs),nrow)
#DF1 DF2 DF3
# 3 3 3
如果您不想创建向量MyDFs
sapply(mget(ls(pattern="DF")), nrow) #should also work
答案 1 :(得分:0)
在您自己的代码中,只需将print(nrow(i))
替换为print(nrow(get(i)))
,因为我是:chr&#34; DF1&#34;等
for (i in MyDFs) {
print(nrow(get(i)))
}
[1] 3
[1] 3
[1] 3