% left_join(-6ren">
gpt4 book ai didi

r - 有没有一种方法可以有效地将两个表与存储在列表格式中的键连接起来

转载 作者:行者123 更新时间:2023-12-04 02:25:34 26 4
gpt4 key购买 nike

用于说明我的问题的代码示例。

table_A <- tibble(A1 = c("a", "a/b"), A2 = seq(1,2))
table_A <- table_A %>% mutate(A1 = str_split(A1, "/"))

table_B <- tibble(A1 = c("a","b"), B1 = c("apple", "bananas"))

#does not work
#left_join(table_A, table_B)

期望的结果是有一个新的 B1 列c("apple") 和 c("apple", "bananas") 但显然这段代码不起作用。实际上,列表的范围从没有键到 5 个键长。很高兴接受任何建议,也许有一种方法可以重新构建数据或问题以优雅地解决它。

最佳答案

我们可以在执行连接之前取消嵌套 list

library(dplyr)
library(tidyr)
table_A %>%
unnest(A1) %>%
left_join(table_B)

-输出

# A tibble: 3 x 3
A1 A2 B1
<chr> <int> <chr>
1 a 1 apple
2 a 2 apple
3 b 2 bananas

或者另一种选择是使用 separate_rows 而不是 strsplit 然后进行连接

table_A %>% 
separate_rows(A1, sep="/") %>%
left_join(table_B)

关于r - 有没有一种方法可以有效地将两个表与存储在列表格式中的键连接起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67908438/

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