gpt4 book ai didi

r - 如何在取消嵌套之前删除嵌套小标题中的重复列名

转载 作者:行者123 更新时间:2023-12-04 17:11:38 25 4
gpt4 key购买 nike

我有一个包含(嵌套)小标题的列的小标题。嵌套的 tibbles 有重复的数据(相同的名称,相同的值):

df <- tibble(id = 1:2, data = list(tibble(id = 1, var1 = "a", var2 = "b"), tibble(id = 2, var1 = "c", var2 = "d")))

df

# # A tibble: 2 x 2
# id data
# <int> <list>
# 1 1 <tibble [1 x 3]>
# 2 2 <tibble [1 x 3]>

调用 df %>% unnest(data) 结果

Error: Names must be unique..

我想编写一个函数来预先删除这些列,但不知道如何操作。我的目标是运行以使用以下内容:

df %>% 
drop_duplicated_cols(data) %>%
unnest(data)

这会导致:

#> # A tibble: 2 x 4
#> id var1 var2
#> <int> <chr> <chr>
#> 1 1 a b
#> 2 2 c d

最佳答案

你可以只使用unnest_longer

library(tidyverse)
df %>%
unnest_longer(data)

给出:

# A tibble: 2 x 2
id data$id $var1 $var2
<int> <dbl> <chr> <chr>
1 1 1 a b
2 2 2 c d

如果要真正转换tibble列,还可以使用:

df %>%
left_join(reduce(df$data, bind_rows), by = "id")

给出:

# A tibble: 2 x 4
id data var1 var2
<dbl> <list> <chr> <chr>
1 1 <tibble [1 x 3]> a b
2 2 <tibble [1 x 3]> c d

然后您可以从那里,例如取消选择数据列。

关于r - 如何在取消嵌套之前删除嵌套小标题中的重复列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69320862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com