列表到数据框的列表
我从一个API查询中的端点获取一个包含19个元素的370个列表的列表。我试图将其转换为R行中的19行370行。列表到数据框的列表
当我尝试as.dataframe时,我收到一条错误消息:参数意味着行数不同:1,0 当我尝试lapply(datos, ldply),我得到以下错误:结果必须是全部原子,或所有数据帧
也尝试了平面列表帖子。而且还得到消息:参数暗示行的不同数目:1,0
PS:我查了一下关于这个问题以前类似的问题,尝试了答案,但我没有得到我想要的东西
我的数据:
[]
预期输出:370行与列19
考虑滤除NULL
实体这是在铸造列表元素到数据帧的挑战。
数据(再现屏幕截图的可见部分)
inner <-
list(
loandId = 2,
websiteLoanId = 2,
loanName = "Nottingham Student Accodomodation Development Project",
amount = 1500000.0,
principalRemaining = "0.00",
firstDrawDate = "2013-04-16T07:36.08.000z",
status = "repaid",
sector = NULL,
category = "development",
holdings = list(1,2,3,4,5),
aftermarketForSale = list("a", "b", "c", "d", "e")
)
datos= list(loans = lapply(seq(370), function(i) inner))
数据帧建立
# FILTER OUT NULLs
datos$loans <- lapply(datos$loans, function(item)
Filter(function(i) length(i) == 1, item)
)
# IF ALL ELEMENTS ARE THE SAME (I.E., NULL DROPS SAME ITEM)
loansdf <- do.call(rbind, lapply(datos$loans, data.frame))
# IF NULL DROPS ABOVE ARE NOT SAME, USE BELOW PACKAGES FOR RBINDING METHOS
loansdf <- plyr::rbind.fill(datos$loans)
loansdf <- dplyr::bind_rows(datos$loans)
loansdf <- data.table::rbindlist(datos$loans)
输出
loansdf
# loandId websiteLoanId loanName amount principalRemaining firstDrawDate status
# 1 2 2 Nottingham Student Accodomodation Development Project 1500000 0.00 2013-04-16T07:36.08.000z repaid
# 2 2 2 Nottingham Student Accodomodation Development Project 1500000 0.00 2013-04-16T07:36.08.000z repaid
# 3 2 2 Nottingham Student Accodomodation Development Project 1500000 0.00 2013-04-16T07:36.08.000z repaid
# 4 2 2 Nottingham Student Accodomodation Development Project 1500000 0.00 2013-04-16T07:36.08.000z repaid
# 5 2 2 Nottingham Student Accodomodation Development Project 1500000 0.00 2013-04-16T07:36.08.000z repaid
# 6 2 2 Nottingham Student Accodomodation Development Project 1500000 0.00 2013-04-16T07:36.08.000z repaid
# 7 2 2 Nottingham Student Accodomodation Development Project 1500000 0.00 2013-04-16T07:36.08.000z repaid
# 8 2 2 Nottingham Student Accodomodation Development Project 1500000 0.00 2013-04-16T07:36.08.000z repaid
非常感谢您的努力,Parfait.I试图复制第一部分你的建议,但我不能完全复制内部的第一个注册,因为一些领域也是一个列表,我不能查看-aftermarketForSale和持股。不,空值不是全部相同,并非所有的字段都是空的,...我发布了一个更完整的数据视图。 – cyrilmadrid
我试图做没有第一阶段的数据帧生成,筛选空值的作品,但plyr,dplyr,data.table给我的错误:loansdf loansdf loansdf cyrilmadrid
您应该不必运行* Data *示例,因为我试图重新创建您只能在截图中呈现的结构。我其实已经走出了这条路(你应该这样做)。不要将数据/代码负担放在志愿者回答者身上。 – Parfait
看看http://*.com/questions/5963269/how-to-make-a-great-r-reproducible-example/28481250#28481250 – Frank
谢谢。您是否建议我展示我的数据?不知道我该怎么做,我应该使用剪切工具并粘贴? – cyrilmadrid
我试图粘贴在这个评论框中,它不起作用。 – cyrilmadrid