我有一个命名列表,其中每个元素都是一个字符向量。我想将这个列表写入一个数据帧,其中我有两列,一列是字符向量的名称,第二列是字符向量的每个元素。任何帮助,将不胜感激。
答案 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"
希望我能提供帮助。