我有一个命名列表,其每个元素都是一个字符向量。我想将此列表写入一个数据框中,其中有两列,一列包含字符向量的名称,第二列包含字符向量的每个元素。任何帮助,将不胜感激。
问问题
251 次
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 回答