如何在R中将多个值分配为一次?

时间:2015-07-14 13:11:58

标签: r

是否存在将每个data.frame对象分配给单独变量的已有方法?

list(cyl4, cyl6, cyl8) <- split(mtcars, mtcars$cyl)
  

列表中的错误(x,y,z)&lt; - split(mtcars,mtcars $ cyl):     找不到功能&#34; list&lt; -

1 个答案:

答案 0 :(得分:2)

您可以使用assign为变量赋值。变量名是字符串。

在下面的代码中,我通过列表中的元素循环,并从向量names中分配了名称。

l <- split(mtcars, mtcars$cyl)   

names <- c('cyl4', 'cyl6', 'cyl8')

for (i in 1:length(names)) assign(names[i], l[[i]])

或@Roland(和其他人)指出的list2env函数。 attach函数执行类似的操作。

l <- split(mtcars, mtcars$cyl)   

names(l) <- c('cyl4', 'cyl6', 'cyl8')

list2env(l, envir = .GlobalEnv)

或者

attach(l)

尽管如其他人所指出的那样。这可能不是最好的主意;跟踪列表中的内容更容易。您可以根据需要使用$访问它们。

l$cyl4