library(jsonlite)
paths <- list.files(
pattern="data.json",
full.names=TRUE,
recursive=TRUE
)
colNames = c("BillType",
"Congress",
"IntroducedAt",
"OfficialTitle",
"Number",
"Status",
"SubjectsTopTerm",
"UpdatedAt")
trimData <- function(x) {
a <- list(x$bill_type,
x$congress,
x$introduced_at,
x$official_title,
x$number,
x$status,
x$subjects_top_term,
x$updated_at)
result <- as.data.frame(a)
return(result)
}
rawData <- do.call(
"rbind",
lapply(paths, function(x) fromJSON(txt = x, simplifyDataFrame = TRUE))
)
prunedData <- do.call(
"rbind",
lapply(rawData, function(x) trimData(x))
)
colnames(test) <- colNames
write.csv(prunedData, "test3.csv")
このスクリプトでの私の目標は、データフレーム化された JSON データを取得し、それを CSV 出力用のよりスリムなデータ フレームに変換することです。変数はrawData
最終的に約 100 列になります。RStudio でこのスクリプトを実行すると、次のエラーが発生します。
> prunedData <- do.call("rbind", lapply(rawData, function(x) trimData(x)))
Error in data.frame(NULL, NULL, NULL, NULL, NULL, c(NA, "PASS_OVER:HOUSE", :
arguments imply differing number of rows: 0, 4
私は R や SQL のような宣言型言語の専門家ではないので、これを簡単に説明していただければ、大いに役立つでしょう。