我在 SO 中阅读了许多关于将列表列表转换为 df 的答案。但是,我注意到它们的列表长度(在主大列表内)都是相同的。我有一个不同的案例:
h1 <- list(USA = c(10,13,17,11), RUSSIA = NULL, BRAZIL = NULL,
CHINA = c(11,11,10,8,12), TAIWAN = c(12,9,9,11,9,12,14), CHILE = NULL)
我想将上面的列表h1
转换为data.frame。我的预期输出应该是一个包含 2 列的 data.frame - 国家名称、列表。像这样的事情:
country_name, list
USA [10, 13, 17, 11]
RUSSIA NULL
BRAZIL NULL
CHINA [11, 11, 10, 8, 12]
TAIWAN [12, 9, 9, 11, 9, 12, 14]
CHILE NULL
我做了以下操作,但是没有成功:
do.call(rbind, h1)
它尝试使所有行的列号保持相同。我不要那个。我想看看如何在这种情况下使用 ldply。如有任何建议,我们将不胜感激。
最佳答案
这是一种方法:
R> as.data.frame(as.matrix(h1))
V1
USA 10, 13, 17, 11
RUSSIA NULL
BRAZIL NULL
CHINA 11, 11, 10, 8, 12
TAIWAN 12, 9, 9, 11, 9, 12, 14
CHILE NULL
R> as.data.frame(as.matrix(h1))['TAIWAN', ]
$TAIWAN
[1] 12 9 9 11 9 12 14
关于r - R 中 data.frame 长度不同的列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12875716/