R中data.frame的长度不同的列表列表

use*_*931 5 r list dataframe

我已经阅读了很多关于将列表列表转换为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)
Run Code Online (Sandbox Code Playgroud)

我想将上面的列表h1转换为data.frame.我的预期输出应该是一个包含2列的data.frame - country_name,list.像这样的东西:

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
Run Code Online (Sandbox Code Playgroud)

我做了以下,但是,没有奏效:

do.call(rbind, h1)
Run Code Online (Sandbox Code Playgroud)

它试图在所有行中保持列号相同.我不要那个.我想知道如何使用ldply来处理这种情况.任何建议表示赞赏.

GSe*_*See 5

这是一种方法:

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
Run Code Online (Sandbox Code Playgroud)