如何从字符向量创建多个对象:对象名称作为向量元素名称,对象值作为向量元素值

时间:2014-06-28 09:09:23

标签: r vector assign

想象一下我们有:

X <- 1:4
names(X) <- c("A" ,"B" , "C", "D")

我想在全局环境中创建四个对象,A,B,C,D,每个对象具有相应的值1,2,3,4。我假设解决方案涉及分配和应用函数,但希望有人在这里可以想出比我更好的东西。

(上下文:我想创建一种基于命名字符向量的伪制作文件,其中名称是我想要创建的对象的名称,值是csv文件的名称和位置我希望用...填充每个对象。上面的玩具示例是向前迈出的一步。)

2 个答案:

答案 0 :(得分:3)

您可以使用list2env

list2env(as.list(X),.GlobalEnv)

当然,正如评论中所提到的,使用分离的全局变量并使全局环境混乱不是一个好习惯。 R方式是将变量保存在列表或向量中,并使用xxapply族函数来操作每个向量元素。

答案 1 :(得分:3)

试试这样:

for(i in seq_along(x)){
     assign(names(x)[i],x[i])
}