我正在从 JSON 文件中取消嵌套数据。当我制作一个小样本时, unnest() 函数可以工作,但是当我尝试在大型原始数据帧上运行它时,我收到以下错误。
`Error in bind_rows_(x, .id) :
Column lines can't be converted from integer to list`
我的代码如下。我们从 GitHub 的 API 获得 JSON 数据。
`repo_data <- fromJSON("data/data/repos.json")`
小数据帧,只有前 100 行
`repo_small <- head(repo_data, 100)`
整洁的 repo 数据,未列出语言和代码行
`df_repo <- repo_small %>% select(ownerName, name, languages, ownerType) %>% unnest()`
当我过滤或任何其他奇怪的事情时,没有 NA 行。我需要取消嵌套的唯一列是语言。
Languages 是一个包含 2 个列表的列表。第一个列表是名称,具有“Java”、“Python”和“Ruby”等值。这些是字符值。第二个列表是行,具有 104、109432 和 10 等值。这些是整数值。
根据要求提供一些示例代码来复制数据。testdf 将是相关列的数据框和语言。
`owner <- c("github", "palentir", "apple")
gitcode <- data.frame(name = c("java"), lines=c(81))
palentircode <- data.frame(name= c("java", "python", "R"), lines=c(200, 45,903))
applecode <- data.frame(name=c("java", "ruby"), lines=c(12, 120))
langauge <- list(gitcode, palentircode, applecode)
testdf <- data.frame(owner)
testdf$language <- langauge`