我需要创建相同df的副本,其数量与更改矢量中存储的值的那些数据帧的名称相同。 例如:
z <- c("A-1", "B-2", "C-2", ...)
for (i in z) {
i <- already_existing_df
}
手动硬编码类似于:
`A-1` <- df
`B-2` <- df
# ...and so on
我当然想自动化它,而不是对其进行硬编码...也因为它每月都会更改,所以我们谈论的是许多dfs ...
现在,我知道要将i
作为变量名进行传递,您只需执行以下操作:
df[i]
但是我不知道如何将i
作为df
的名称来传递。
在此先感谢您的帮助!
答案 0 :(得分:2)
另一种方法可能是使用replicate
重复数据帧length(z)
次,并将名称分配给列表
z <- c("A-1", "B-2", "C-2")
list_df <- setNames(replicate(length(z), df, simplify = FALSE), z)
然后可以按原样保留数据框列表,或将其作为单独的数据框。
list2env(list_df, .GlobalEnv)
答案 1 :(得分:2)
根据您想要的结果,您可以定义一个列表(或环境):
z <- vector("list", 3)
for (i in seq_along(z)) {
z[[i]] <- already_existing_df
}
names(z) <- c("A-1", "B-2", "C-2")
答案 2 :(得分:1)
您可以执行assign(df, z)
,这将在df
的{{1}}元素下为您的环境分配i
。