将数据帧列表转换为R中的各个数据帧

Bry*_*ler 15 for-loop r list dataframe

我一直在寻找我认为简单解决方案的高低.

我有一个大的数据框架,我按因素分开.

eqRegions <- split(eqDataAll, eqDataAll$SeismicRegion)

现在,这将按区域创建数据框的列表对象; 共有8个.我想循环遍历列表,使用另一个名称制作单独的数据框.

我可以执行以下操作将列表项转换为单独的数据帧,但我认为如果我有很多因素,有一个循环机制很快.

testRegion1 <- eqRegions[[1]]

testRegion3 <- eqRegions[[3]]

我可以手动执行上面的操作并且很好地处理它,但是如果我有很多区域则效率不高.我想做的是相当于以下内容:

for (i in 1:length(eqRegions)) {
   region[i] <- as.data.frame(eqRegions[[i]])
}
Run Code Online (Sandbox Code Playgroud)

我认为关键是在循环之前定义区域,但它会自行覆盖而不是递增.非常感谢.

Mar*_*pov 38

尝试 list2env(eqRegions,envir=.GlobalEnv)


Vlo*_*Vlo 6

这应该有效。创建的 data.frames 的名称将等于eqDataAll$SeismicRegion. 无论如何,不​​推荐这种填充单个 data.frames 的做法。我使用 R 的次数越多,我就越喜欢/使用列表。

lapply(names(eqRegions), function(x) assign(x, eqRegions[[x]], envir = .GlobalEnv))
Run Code Online (Sandbox Code Playgroud)

编辑:使用list2env发布的解决方案。不知道list2env功能。