如何将元素与嵌套向量列匹配?
How to match elements with a nested vector colum?
我试图查看嵌套向量中的元素如何与 Order_ID 列中的订单 ID 匹配,但我不太确定如何将它们匹配在一起。例如:
我想创建代码以将订单 ID 与嵌套向量中的单独元素相匹配。比如我希望看到
我已经尝试使用 unlist()
从嵌套向量中提取元素,但我仍然不确定如何将它们与订单 ID 匹配。有什么办法可以解决这个问题吗?任何想法表示赞赏。
这里有一个可重现的问题示例:
library(dplyr)
df <- tibble(x = letters[1:3],
a = list(1L, 2:3, 4:6),
b = list(LETTERS[1], LETTERS[2:3], LETTERS[4:6]))
df
#> # A tibble: 3 x 3
#> x a b
#> <chr> <list> <list>
#> 1 a <int [1]> <chr [1]>
#> 2 b <int [2]> <chr [2]>
#> 3 c <int [3]> <chr [3]>
View(df)
这里是解决方法:
df %>%
group_by(x) %>%
summarise(across(c(a,b), unlist), .groups = "drop")
#> # A tibble: 6 x 3
#> x a b
#> <chr> <int> <chr>
#> 1 a 1 A
#> 2 b 2 B
#> 3 b 3 C
#> 4 c 4 D
#> 5 c 5 E
#> 6 c 6 F
您需要在 group_by
中设置要保留和复制的所有变量(在本例中为 x
),并在所有要取消列出的变量中设置(在本例中案例 c(a, b)
).
across
将 unlist
应用于每一列,同时考虑到分组。
我相信你的情况代码应该是:
df %>%
group_by(Order_ID) %>%
summarise(across(c(Product, Price, Quantity), unlist), .groups = "drop")
我试图查看嵌套向量中的元素如何与 Order_ID 列中的订单 ID 匹配,但我不太确定如何将它们匹配在一起。例如:
我想创建代码以将订单 ID 与嵌套向量中的单独元素相匹配。比如我希望看到
我已经尝试使用 unlist()
从嵌套向量中提取元素,但我仍然不确定如何将它们与订单 ID 匹配。有什么办法可以解决这个问题吗?任何想法表示赞赏。
这里有一个可重现的问题示例:
library(dplyr)
df <- tibble(x = letters[1:3],
a = list(1L, 2:3, 4:6),
b = list(LETTERS[1], LETTERS[2:3], LETTERS[4:6]))
df
#> # A tibble: 3 x 3
#> x a b
#> <chr> <list> <list>
#> 1 a <int [1]> <chr [1]>
#> 2 b <int [2]> <chr [2]>
#> 3 c <int [3]> <chr [3]>
View(df)
这里是解决方法:
df %>%
group_by(x) %>%
summarise(across(c(a,b), unlist), .groups = "drop")
#> # A tibble: 6 x 3
#> x a b
#> <chr> <int> <chr>
#> 1 a 1 A
#> 2 b 2 B
#> 3 b 3 C
#> 4 c 4 D
#> 5 c 5 E
#> 6 c 6 F
您需要在 group_by
中设置要保留和复制的所有变量(在本例中为 x
),并在所有要取消列出的变量中设置(在本例中案例 c(a, b)
).
across
将 unlist
应用于每一列,同时考虑到分组。
我相信你的情况代码应该是:
df %>%
group_by(Order_ID) %>%
summarise(across(c(Product, Price, Quantity), unlist), .groups = "drop")