我有一些 df 喜欢
df1
df2
df3
...
dfn
那么如何使用循环使用我的数据框
例子:
循环(我在 1:n)
{
摘要(paste0(“df”,i)) # =====> 它不起作用!
}
最佳答案
我们可以使用 mget
返回 list
中字符串对象的值,然后循环遍历 list
与 lapply
获取 summary
lapply(mget(paste0("df", seq_len(n))), summary)
如果我们使用
for
循环,确保我们将结果存储在一个对象中,最好是 list
, 使用 get
返回对象的值,得到summary
并将其存储为 list
'out' 对象中的元素out <- vector('list', n)
for(i in seq_len(n)) {
out[[i]] <- summary(get(paste0("df", i)))
}
注意:最好拥有所有
data.frame
在 list
.但是,如果我们想使用 for
更新全局环境中的原始对象。循环使用 assign
for(i in seq_len(n)) {
assign(paste0("df", i), get(paste0("df", i))[-(1:3)])
}
或者这可以通过
list2env
来完成使用后lapply
list2env(lapply(mget(paste0("df", seq_len(n))), function(x) x[-(1:3)]), .GlobalEnv)
数据
df1 <- data.frame(col1 = 1:3, col2 = 4:6, col3 = 7:9, col4 = 10:12)
df2 <- data.frame(col1 = 1:15, col2 = 16:30, col3 = 31:45, col4 = 46:60)
n <- 2
关于循环中的 R 动态数据框名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44110953/