【发布时间】:2018-08-16 04:06:33
【问题描述】:
我正在从 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 行。我需要取消嵌套的唯一列是语言。
语言是一个包含 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`
【问题讨论】:
-
请提供该数据库的样本(minimal, complete, verifiable example)。一些方法可以找到stackoverflow.com/questions/5963269/…
-
unnest(testdf)运行时出现警告。你能提供一个重现你的错误的例子吗? -
请阅读我们都链接到的帖子:) stackoverflow.com/questions/5963269/…
-
我试过了,但是数据框的形状不对。警告是相同的错误消息。如果我不绑定任何东西,除非 unnest 是,该消息是什么意思?
-
感谢您的帮助,但决定看看我是否可以手动编写一个函数,因为似乎 unnest() 正在处理小样本,但在使用大样本时似乎会带来此错误,原始数据集。