R 取消列出数据帧列表

R 取消列出数据帧列表,r,R,这可能是一个非常简单的问题。我有一个数据帧列表(df1,df2…dfn),即列表中的每个元素都是一个数据帧。因此,基本上,列表是这样创建的: mylist = list(df1, df2,...., dfn) 但是我该如何做相反的操作,即取消列表,以便df1、df2等分别驻留在工作区中?您可以简单地使用for循环和assign函数,如下所示: # Sample data df.list <- list(data.frame(x = 1:3, y = c(10, 20, 30)),

这可能是一个非常简单的问题。我有一个数据帧列表(df1,df2…dfn),即列表中的每个元素都是一个数据帧。因此,基本上,列表是这样创建的:

mylist = list(df1, df2,...., dfn)

但是我该如何做相反的操作,即取消列表,以便df1、df2等分别驻留在工作区中?

您可以简单地使用for循环和
assign
函数,如下所示:

# Sample data
df.list <- list(data.frame(x = 1:3, y = c(10, 20, 30)), 
                data.frame(x = 4:6, y = c(40, 50, 60)), 
                data.frame(x = 7:9, y = c(70, 80, 90)))

# Write out single data frames
for (i in seq(df.list))
  assign(paste0("df", i), df.list[[i]])
#示例数据

df.list使用
list2env
它是专门为此设计的:

从命名列表x中,创建包含所有列表的环境 组件作为对象,或从x“多重指定”到预先存在的 环境

因此,这里:

list2env(mylist ,.GlobalEnv)

谢谢你是心灵感应者吗?问题应该是,你为什么要这么做。如果你把所有的df都列在一个可爱的列表中,你几乎没有理由把它们分成不同的对象。你可以把它们作为你列表中的元素来处理。同意西蒙的观点。如果您想按名称调用它们,最好在列表中命名它们-例如
myList=list(df1=data.frame(…),df2=data.frame(…),…)
并使用
myList[['df1']调用它们
我想这只是一个方便的问题。有了RStudio,跟踪所有数据帧就更容易了。当你有一个未命名的列表时,这是一个很棒的解决方案。我如何才能将其写入不同的数据帧中?@krushnachChandra它被写入不同的数据帧中。在这种情况下,
df1,df2,df3
。哇,你每天都会学到一些东西!!这本应该已经完成了几年前就知道了真是太好了!+1这看起来有点危险!