【发布时间】:2023-03-22 03:46:01
【问题描述】:
在这里,当我有一个循环时,我经常遇到这种问题。第一个解决了。
[1] 我有一个这样的列表:
myList <- list(a = c(1, 2, 3), b = c(4, 5, 6, 7), c= c(9,10))
现在我想将列表转换为这样的 data.frame:
Value
a 1, 2, 3
b 4, 5, 6, 7
c 9, 10
有没有人通过基本 R 向我展示一般功能?
[2]新问题出现:
mynewList <- list(a = c(1, 2, 3, "f"), b = c(4, 5, 6), c= c(9,10), d=list(1,2))
我想将 mynewlist 转换为这样的数据框:
a b c d
1 1 4 9 1
2 2 5 10 2
3 3 6 na na
4 f na na na
我之前使用过以下命令,它可以在没有 d 元素的情况下工作。但它现在不起作用。
df<-data.frame(lapply(myList, "length<-" , max(lengths(myList))))
有没有人通过基本 R 向我展示一般功能?
【问题讨论】:
-
您用于问题 2 的方法是正确的。问题在于您如何编写
d的条目:您需要将d添加为d=list(c(1, 2))。将其写为d = list(1, 2)会将d传播到最终列表中的两个元素上,如果您在尝试将其放入data.frame 之前查看mynewList可以看出这一点。