我将一个JSON文件转换为具有嵌套列表结构的data.frame,并希望对其进行解嵌套和展平操作。列表中的一些值是NULL,而unnest不接受这些值。如果我用仅包含NA值的data.frame结构替换NULL值,则会得到所需的结果。
下面是我的问题的简化示例。我尝试用NA data.frame替换NULL值,但由于嵌套结构而没有成功。如何实现所需的结果?
示例
library(tidyr)
input1 <- data.frame(id = c("c", "d", "e"), value = c(7, 8, 9))
input2 <- NULL
input3 <- data.frame(id = c(NA), value = c(NA))
df <- dplyr::tibble(
a = c(1, 2),
b = list(a = input1, c = input2))
unnest(df)
出现错误:“错误:每列必须是向量列表或数据框列表 [b]”
df2 <- dplyr::tibble(
a = c(1, 2),
b = list(a = input1, c = input3))
unnest(df2)
得到了期望的输出。
tidyr
1.0.0 中修复;请参见 https://github.com/tidyverse/tidyr/issues/436。 - Frank