Consider filtering out the NULL
entity which is the challenge in casting list elements to dataframe.
Data (recreates visible part of screenshot)
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))
Dataframe build
# 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)
Output
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