【发布时间】:2018-09-01 13:23:42
【问题描述】:
我有两个列表,我想将它们组合成一个数据框。列表遵循这个基本逻辑。 list1 包含国家名称,list2 包含从 list1 中的每个值中提取的值。
list1<-list("A", "C", "B")
list2<-list(c("la la", "po sdfejn kfgndñflgn"), "characther(0)", c("4 5","baby", "yeah")) # note that characther(0) means that there is no data
我想要的结果是这样的:
output <- data.frame( V1 = c(rep("A",2), "C", rep("B",3)), V2 = c("la la", "po sdfejn kfgndñflgn", "characther(0)", "4 5", "baby", "yeah"))
我使用了我在此页面中看到的代码,例如:solution1 <- do.call(rbind, Map(data.frame, a = list1, b= list2))我经常这样做。此代码适用于示例。但是,当我将此公式用于我正在处理的大型列表时,我会收到以下错误消息:
Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, : arguments imply differing number of rows: 1, 0
我尝试过unlist(list1), unlist(list1),但它不起作用。如果两个列表相同,那么问题的真正根源在哪里,我该如何解决才能获得所需的输出?
【问题讨论】:
-
我看不到您的预期输出如何连接到您的示例数据。所有条目似乎都不匹配。请提供基于您的示例数据的预期输出。
-
恐怕这不是Minimal, Complete, and Verifiable example。使用您的代码和示例数据,我既没有收到您的错误消息,也没有收到预期的输出。请提供复制您的问题的示例数据并解释您预期输出的规则。
-
对不起,我编辑它
-
请看我更新的答案。我想我可以生成您预期的输出,除了
A应该只重复两次。 -
请再次查看我的更新。我已根据您的最新更新更改了答案。