gpt4 book ai didi

r - 如何计算R中数据框中列表列的每一列中的元素

转载 作者:行者123 更新时间:2023-12-05 00:55:07 24 4
gpt4 key购买 nike

我有一个数据框 df 其中一列是列表列。数据框中此列的每个元素都是列表。那么如何在 df 中包含(变异)一个新列,为我提供该列表列中相应元素的计数。

样本数据

df <- structure(list(x1 = 1:5, 
x2 = list(c("a", "b"), c("b", "c", "d"), c("a", "b"), c("a", "b"), c("a", "b"))),
row.names = c(NA, -5L), class = c("tbl_df", "tbl", "data.frame"))
> df
# A tibble: 5 x 2
x1 x2
<int> <list>
1 1 <chr [2]>
2 2 <chr [3]>
3 3 <chr [2]>
4 4 <chr [2]>
5 5 <chr [2]>

我试过了,但没用

df %>% mutate(x3 = length(x2[[row_number()]]))

Error: Problem with `mutate()` input `x3`.
x recursive indexing failed at level 2

i Input `x3` is `length(x2[[row_number()]])`.
Run `rlang::last_error()` to see where the error occurred.

我想要的输出是这样的

# A tibble: 5 x 3
x1 x2 x3
<int> <list> <int>
1 1 <chr [2]> 2
2 2 <chr [3]> 3
3 3 <chr [2]> 2
4 4 <chr [2]> 2
5 5 <chr [2]> 2

最佳答案

试试 lengths,它计算每行中元素的数量。

df$x3 <- lengths(df$x2)
df
# x1 x2 x3
# 1 1 a, b 2
# 2 2 b, c, d 3
# 3 3 a, b 2
# 4 4 a, b 2
# 5 5 a, b 2

关于r - 如何计算R中数据框中列表列的每一列中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65370877/

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