使用vector中的名称创建data.frames

时间:2015-01-05 11:54:07

标签: r

我们说我有一个字符值向量。是否有可能创建多个空的data.frames,其名称取自向量(例如在循环遍历该向量时),并在代码中稍后通过其名称引用那些data.frames,从字符向量中获取这些名称?

names <- c ("data.a","data.z","data.g")

我想循环遍历名称向量并创建空的data.frames data.a data.z data.g等,以后能够通过循环遍历名称来为它们赋值。

2 个答案:

答案 0 :(得分:3)

一种方法是使用sapply创建列表:

nms <- c ("data.a", "data.z", "data.g")
lst <- sapply(nms, function(x) x=data.frame() )
str(lst)
List of 3
 $ data.a:'data.frame': 0 obs. of  0 variables
 $ data.z:'data.frame': 0 obs. of  0 variables
 $ data.g:'data.frame': 0 obs. of  0 variables

并通过以下方式引用它们:

> lst[[1]]
data frame with 0 columns and 0 rows
> lst$data.a
data frame with 0 columns and 0 rows

答案 1 :(得分:2)

你可以尝试

 nms <- c("data.a","data.z","data.g")
 lst <- setNames(replicate(3, data.frame()), nms)