R 将数据帧列表转换为具有id列的单个数据帧
我有一个如下的清单R 将数据帧列表转换为具有id列的单个数据帧,r,list,dataframe,R,List,Dataframe,我有一个如下的清单 p1 $ColA Var1 Freq 1 asgfg 2.1 2 dds 2.1 3 dfg 4.3 4 dfh 2.1 $ColB Var1 Freq 1 A 44.7 2 B 55.3 我需要的东西如下所示。基本上,我想将它们组合成一个数据帧 df Col Var1 Freq ColA asgfg 2.1 ColA dds 2.1 ColA dfg 4
p1
$ColA
Var1 Freq
1 asgfg 2.1
2 dds 2.1
3 dfg 4.3
4 dfh 2.1
$ColB
Var1 Freq
1 A 44.7
2 B 55.3
我需要的东西如下所示。基本上,我想将它们组合成一个数据帧
df
Col Var1 Freq
ColA asgfg 2.1
ColA dds 2.1
ColA dfg 4.3
ColA dfh 2.1
ColB A 44.7
ColC B 55.3
一个选项是
bind_行
library(dplyr)
bind_rows(p1, .id = 'Col')
# Col Var1 Freq
#1 ColA asgfg 2.1
#2 ColA dds 2.1
#3 ColA dfg 4.3
#4 ColA dfh 2.1
#5 ColB A 44.7
#6 ColB B 55.3
或使用
base R
out <- do.call(rbind, Map(cbind, Col = names(p1), p1))
row.names(out) <- NULL
out我们可以使用数据。表
包:
data.table::rbindlist(p1,idcol=“col”)
或使用purrr
:
purrr::map_df(p1,I,.id=“col”)
获取:
#col Var1 Freq
#1:ColA asgfg 2.1
#2:ColA dds 2.1
#3:ColA dfg 4.3
#4:ColA dfh 2.1
#5:ColB A 44.7
#6:ColB B 55.3
使用Perfect中提供的数据。但我收到错误消息警告消息:1:在绑定行中(x,.id):不相等的因子级别:强制到字符2:在绑定行中(x,.id):绑定字符和因子向量,强制到字符向量3:在绑定行中(x,.id):绑定字符和因子向量,强制转换为字符向量
@DevP这是一条警告消息。没什么好担心的。当您有因子
列时发生。如果是字符
列,则不存在系数不相等的问题。请检查my中的数据
post@DevP这不是一条错误消息。错误不会给出输出。是否有方法使用plyr::rbind.fill(p1)
获取col
列?
p1 <- list(ColA = structure(list(Var1 = c("asgfg", "dds", "dfg", "dfh"
), Freq = c(2.1, 2.1, 4.3, 2.1)), class = "data.frame", row.names = c("1",
"2", "3", "4")), ColB = structure(list(Var1 = c("A", "B"), Freq = c(44.7,
55.3)), class = "data.frame", row.names = c("1", "2")))