简单地放在此示例中,我有一个带有名称的向量:
vector
而且我需要为每个名称创建一个数据框。因此,我希望这种引用能够正常工作,以便可以在if条件中循环并创建子集:
data。vector [1]
不幸的是,这不起作用,因为向量参考vector [1]被R读取为不存在的数据帧:
data.vector [1]中的错误
有没有一种方法可以对其进行编码并获取我的所有数据。South,data.North和data.East数据帧已创建?
非常感谢!
与您询问的方式非常相似的一种方法是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
如果要创建名称为vector
的空数据框,一种方法是:
list_data <- setNames(replicate(length(vector), data.frame()), vector)
list2env(list_data, .GlobalEnv)
但是,请考虑使用列表(list_data
),因为它们更易于管理并且不会污染全局环境。