假设我有以下列表:
a=list()
a[1]<-c("1")
a[2]<-c("3")
a[[1]][2]<-c("a")
a[[2]][2]<-c("b")
List of 2
$ : chr [1:2] "1" "a"
$ : chr [1:2] "3" "b"
[[1]]
[1] "1" "a"
[[2]]
[1] "3" "b"
如何将该列表转换为这样的数据框? 这就是信息的样子:
table<-data.frame(col1=c("1a","3b"))
col1
1a
3b
'data.frame': 2 obs. of 1 variable:
$ col1: Factor w/ 2 levels "1a","3b": 1 2
答案 0 :(得分:0)
尝试此操作,如有任何疑问,请与我联系。
a=list()
a[1]<-c("1")
a[2]<-c("3")
a[[1]][2]<-c("a")
a[[2]][2]<-c("b")
b <- t(data.frame(a))
data.frame(col1=paste0(b[,1],b[,2]))
答案 1 :(得分:0)
你可以使用do.call
,但我觉得评论中的答案比这更好:
df <- setNames(data.frame(do.call("paste0",data.frame(do.call("rbind",a)))),"col1")
您随时可以阅读文档中的do.call
:
do.call构造并执行来自名称或的函数调用 函数和要传递给它的参数列表。
<强>输出:强>
> df
col1
1 1a
2 3b
> str(df)
'data.frame': 2 obs. of 1 variable:
$ col1: Factor w/ 2 levels "1a","3b": 1 2