如何解决展平R中的命名列表-将名称转换为第一列
说,我有一个命名列表:
library(dplyr)
myData <- mtcars %>%
group_by(cyl) %>%
group_map(~ head(.x,1L))
names(myData) <- c("Mazda","Honda","Suzuki")
现在,我想将列表转换成如下所示的表:
name mpg disp hp drat wt qsec vs am gear carb
1: Mazda 22.8 108 93 3.85 2.32 18.61 1 1 4 1
2: Honda 21.0 160 110 3.90 2.62 16.46 0 1 4 4
3: Suzuki 18.7 360 175 3.15 3.44 17.02 0 0 3 2
我尝试过:
data.frame(Reduce(rbind,myData))
do.call(rbind.data.frame,myData)
,但是两者都导致没有名称的data.table。如何将列表转换为带有列names
的data.table?
解决方法
rbindlist(myData,idcol = "name")
# name mpg disp hp drat wt qsec vs am gear carb
# 1: Mazda 22.8 108 93 3.85 2.32 18.61 1 1 4 1
# 2: Honda 21.0 160 110 3.90 2.62 16.46 0 1 4 4
# 3: Suzuki 18.7 360 175 3.15 3.44 17.02 0 0 3 2
或在基数R中:
data.frame(name = names(myData),do.call(rbind,myData))
,
带有tidyverse
的选项应该是
library(dplyr)
bind_rows(myData,.id = 'name')
,
基本R选项
TableAPI
给予
cbind(
name = names(myData),c(myData,use.names = FALSE))
)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。