0

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

4

4 回答 4

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
于 2013-08-22T19:13:02.850 回答
1
 NewList <- lapply(names(List), function(X) data.frame(Names=X, Characters=List[[X]]))
 do.call(rbind, NewList)
于 2013-08-22T17:56:22.937 回答
1

也许

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

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

于 2013-08-22T18:17:49.773 回答
0

一个非常简单的方法是使用cbind(),如下所示:

cbind(names(l),l)

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

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

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

cbind(l)

可能就足够了,导致

  l   
a "ax"
b "bx"

希望我能帮上忙。

于 2013-08-22T18:01:16.887 回答