将字符列表转换为r中的数据帧

时间:2017-04-28 02:14:18

标签: r dataframe

假设我有以下列表:

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

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