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

标签 r list dataframe

我在 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/

相关文章:

r - 在 R : Incorrect namespaces 中解析 XML

linux - 使用 JDBC/ODBC 驱动程序将 R 与数据库连接时保护用户凭据

java - 使用 Java 8 流从另一个列表创建对象列表

c# - 列出 DataTable 值

java - Spark - 用列除以整数?

r - 将具有特定值的新行添加到第一列中,然后将 "-"添加到其余列中

r - 根据两列中的值在 R 中创建新列

显式删除列表的元素

r - 如何替换 r 中所有列中的值

python - Pandas - 从列中提取值