r - 数据框中有列表。我想将列表转换为 R 中的单个数据框
问题描述
我的数据框如下所示:
list1
list2
list3
.
.
.
list30
每个列表中都有矢量数据。我希望每个列表都是一个数据框。我不知道该怎么做。
编辑:@Allen Cameron 已经回答了这个问题。
要获取带有列表的数据框,数据框内的每个列表都成为数据框,请使用:
list2env(df_list, globalenv())
在哪里
df_list
是带有列表的原始数据框
解决方案
假设我们有一个这样的数据框:
df <- data.frame(a = 1:3)
df$b <- lapply(1:3, function(x) list(sample(3)))
df
#> a b
#> 1 1 1, 2, 3
#> 2 2 3, 1, 2
#> 3 3 2, 3, 1
在这里我们可以看到该列b
是一个列表列表:
class(df$b)
#> [1] "list"
class(df$b[1])
#> [1] "list"
如果我们想在列 ba 数据框的每一行中创建每个列表,我们可以这样做:
df_list <- setNames(lapply(df$b, function(x) data.frame(var = x[[1]])),
c("df1", "df2", "df3"))
这给了我们一个数据框列表,每个都有自己的名字:
df_list
#> $df1
#> var
#> 1 1
#> 2 2
#> 3 3
#>
#> $df2
#> var
#> 1 3
#> 2 1
#> 3 2
#>
#> $df3
#> var
#> 1 2
#> 2 3
#> 3 1
如果我们愿意,我们可以像这样将它们提取到全局工作区中:
list2env(df_list, globalenv())
所以现在我们有
df1
#> var
#> 1 2
#> 2 3
#> 3 1
df2
#> var
#> 1 1
#> 2 2
#> 3 3
df3
#> var
#> 1 3
#> 2 1
#> 3 2
就个人而言,对于大多数用途,我会保留数据框df_list
以避免污染全局工作空间并更容易遍历数据框。
推荐阅读
- r - 如何通过R包中的字符串调用内部数据集
- python - Pandas 在另一列 B 中为 A 列中的选定值设置条目
- reactjs - React Native - 模态 - 动态最大高度
- reactjs - 在个人选项卡中打开 React 组件
- python - 为什么终端给我这个错误并且所有模块都被导入了?
- android - SSO 谷歌登录无法登录
- .htaccess - 重写规则不适用于 apache2,lucee tomcat
- woocommerce - 将自定义 display_type 添加到 WooCommerce 类别(product_cat 分类)
- go - 使用可选查询参数构造 SQL 查询
- java - Java RecyclerView 重新排序和保留序列