r-如何"取消测试"两个不兼容的嵌套tibble列



我有一列嵌套的tibble。我想把第二行的x值转换成一个列表,这样我就可以unest了。如何根据列名(x(及其格式(character(更改此嵌套列表的值?

tibble(data = c(tibble(x = list(NULL)), 
tibble(x = ""))) %>% 
unnest(data)
#> Error: Can't combine `..1$data` <list> and `..2$data` <character>.

@Duck的评论对我有用。

library(dplyr)
library(tidyr)
tibble(data = c(tibble(x = list(NULL)), tibble(x = ""))) %>% 
unnest_wider(data)

让我试着解释一下:

tidy::unnest()很难找到具有多个嵌套级别的不兼容项。Unnest_;"矩形";tidyverse网站将其描述为";获取一个深度嵌套的列表(通常来源于狂野的JSON或XML(并将其驯服为一个由行和列组成的整洁数据集的艺术和技巧">

Unest_wider获取列表列的每个元素并创建一个新列。

library(dplyr)
library(tidyr)
tibble(data = c(
tibble(x = list(NULL)),
tibble(x = "")
)) |>
mutate(data = ifelse(is.list(data),
data,
list(data)
)) |>
unnest(data)

在tibble中,其中特定列包含";字符";以及";列表";条目尝试此操作:lapply(column1, function(x) {if (is.list(x)) x else list(x)})

最新更新