在R写入列表中有几个元素到data.frame

时间:2013-08-22 17:32:36

标签: r

我有一个命名列表,其中每个元素都是一个字符向量。我想将这个列表写入一个数据帧,其中我有两列,一列是字符向量的名称,第二列是字符向量的每个元素。任何帮助,将不胜感激。

4 个答案:

答案 0 :(得分:1)

 NewList <- lapply(names(List), function(X) data.frame(Names=X, Characters=List[[X]]))
 do.call(rbind, NewList)

答案 1 :(得分:1)

也许

data.frame(vecname = rep(names(ll), sapply(ll, length)), chars = unlist(ll))

让每个列表组件的每个元素对应于最终数据帧中的一行。

答案 2 :(得分:1)

我想知道stack是否提供了你需要的功能(使用Henrik的例子)

ll <- list(x1 = c("a", "b", "c"), x2 = c("d", "e"))
stack(ll)
#-------
  values ind
1      a  x1
2      b  x1
3      c  x1
4      d  x2
5      e  x2

答案 3 :(得分:0)

一种非常直接的方法是使用cbind(),如下所示:

cbind(names(l),l)

这将产生以下数据框,假设l = list(a =“ax”,b =“bx”):

      l   
a "a" "ax"
b "b" "bx"

当然,您可以通过调整colnames(l)和rownames(l)中的值来重命名列和行。在此示例中,字符串名称也会自动应用于结果数据框的rownames,因此,根据您要对数据执行的操作,

cbind(l)

可能就足够了,导致

  l   
a "ax"
b "bx"

希望我能提供帮助。