将R中的两个列表组合成一个数据框[重复]
Posted
技术标签:
【中文标题】将R中的两个列表组合成一个数据框[重复]【英文标题】:Combine two lists in R into a dataframe [duplicate] 【发布时间】:2015-08-26 14:25:24 【问题描述】:我在 R 中有两个长度相同的列表,并希望将它们组合成一个数据帧,结果数据帧中的总行数等于两个列表的长度(换句话说,每个列表都是柱子)。当我尝试使用c(list1, list2)
时,这两个列表被附加在一起,而当我使用cbind(list1, list2)
时,观察总数几乎是原始长度的两倍。
【问题讨论】:
【参考方案1】:试试
do.call(rbind.data.frame, Map('c', list1, list2))
数据
list1 <- as.list(1:5)
list2 <- as.list(6:10)
【讨论】:
我使用了最后一段代码并收到错误消息“data.frame(Col1 = unlist(lat_long_zip_key), Col2 = unlist(listing_id)) 中的错误:参数暗示不同的行数:57246 , 57258" 但是,当我运行两个列表的长度时,length(listing_id) [1] 57258
和 length(lat_long_zip_key) [1] 57258
它们似乎具有相同的长度。有什么建议吗?
@g.humpkins 我假设您的列表元素具有相同的长度,但如果不是这种情况,两个列表中的 unlist
将返回不同的长度。你能展示一个显示错误的可重现的小例子吗?
啊,我能够让它与你的第一个代码 sn-p 一起工作,谢谢!你知道为什么当我测试列表的长度时,它们是等价的,但是当我使用unlist
代码时它们不是?
@g.humpkins 您正在查看整个列表的length
,根据您的描述,两个列表的长度相同。但是,如果该列表中的某些元素的长度或 nrow 等不同怎么办?尝试检查 sapply(listing_id, length)
或 lengths(listiing_id)
(在 R 3.2.0 中)以上是关于将R中的两个列表组合成一个数据框[重复]的主要内容,如果未能解决你的问题,请参考以下文章