我在我的环境中存储了许多不同维度的数据帧。但是,这些数据框具有相似的名称,如a1
、a2
、a3
等,直到a10
。
现在,我想为每个数据框准备一个循环,而不是dim(a1)
,dim(a2)
可以一次为我提供所有这些数据框的维度。我使用了以下代码:
for (i in 1:10) {
dim(get(paste0("a", i)))
}
但是,这并没有给出任何结果。请帮忙
您可以使用lapply
将循环的输出存储在列表中:
lapply(paste0("a", c(1,10)), function(x)dim(get(x)))
@user1981275的回答提醒我,我总是忘记get()
for()
R 中的循环通常不是一个好主意。
首先,将数据框放入列表中:
dfs <- ls(pattern = "a")
然后lapply()
该列表:
lapply(dfs, function(x) {dim(get(x))})
如果环境中加载了其他对象,并在pattern =
匹配项中带有"a",则需要更复杂的匹配