Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 为列表的每个元素创建一个单独的变量_R_List - Fatal编程技术网

R 为列表的每个元素创建一个单独的变量

R 为列表的每个元素创建一个单独的变量,r,list,R,List,我有一个数据帧列表,它是通过一次读取25.csv文件生成的。我想取消列出数据帧以开始空间分析。也就是说,我希望列表中的每个元素都有单独的数据帧 我尝试了unlist(),但它没有产生我想要的结果。我还尝试了一种使用lappy()的方法,但它产生了一个错误。以下是我尝试过的: x <- 1:3 y <- 4:6 l <- lapply(1:2, function(x){data.frame(x, y)}) lapply(1:length(l), function(i){pas

我有一个数据帧列表,它是通过一次读取25.csv文件生成的。我想取消列出数据帧以开始空间分析。也就是说,我希望列表中的每个元素都有单独的数据帧

我尝试了
unlist()
,但它没有产生我想要的结果。我还尝试了一种使用
lappy()
的方法,但它产生了一个错误。以下是我尝试过的:

x <- 1:3
y <- 4:6

l <- lapply(1:2, function(x){data.frame(x, y)})

lapply(1:length(l), function(i){paste('df', i, sep = '') <- data.frame(l[[i]])})
问题似乎出在我的
paste()
函数的输出中的某个地方,但是输出中有
str()
'chr'。有没有办法让我的方法奏效?有没有更干净的方法来取消我的数据帧列表?

一种方法:

list2env(setNames(l,paste0("df",seq_along(l))), envir = parent.frame()) 
尽管我会在为时已晚之前听从@baptiste的建议,避免这样做。
为什么?因为在两天内,您将发现自己被困在使用
get()
paste
和混乱循环的陷阱中,试图同时将函数应用于所有数据集。如果您将它们保存在列表中,您可以只执行
lappy(l,functionname)

?分配
,如果您觉得必须这样做,或者
?附加
。将它们保存在一个列表中通常是一个更好的主意。离题,但为什么分配给
“df1”
有效呢?我没料到会这样。@Marius-from
?“回答得很好。这些对我来说都是新函数。我想我把它从列表中去掉的动机是我对列表是新的,所以它看起来更容易。但是现在没有时间了,所以我将试着把它作为一个列表来学习一两件事。谢谢。
list2env(setNames(l,paste0("df",seq_along(l))), envir = parent.frame())