R:使用矢量名称通过自动化创建多个data.frames

问题描述 投票:0回答:2

简单地放在此示例中,我有一个带有名称的向量:

vector

而且我需要为每个名称创建一个数据框。因此,我希望这种引用能够正常工作,以便可以在if条件中循环并创建子集:

data。vector [1]

不幸的是,这不起作用,因为向量参考vector [1]被R读取为不存在的数据帧:

data.vector [1]中的错误

有没有一种方法可以对其进行编码并获取我的所有数据。South,data.North和data.East数据帧已创建?

非常感谢!

r function dataframe vectorization
2个回答
1
投票

与您询问的方式非常相似的一种方法是assign

for(i in seq_along(vector)){
assign(vector[[i]],data.frame())
}
ls()
[1] "East"             "North"             "South"

另一种方法是创建一个列表对象,其中每个元素都是data.frame,如下所示:

lapply(vector, function(x){setNames(data.frame(x),x)})
[[1]]
  South
1 South

[[2]]
  North
1 North

[[3]]
  East
1 East

1
投票

如果要创建名称为vector的空数据框,一种方法是:

list_data <- setNames(replicate(length(vector), data.frame()), vector)
list2env(list_data, .GlobalEnv)

但是,请考虑使用列表(list_data),因为它们更易于管理并且不会污染全局环境。

© www.soinside.com 2019 - 2024. All rights reserved.