我想根据数字是否为偶数对它们进行分组,并计算偶数和奇数组。
suppressPackageStartupMessages(library(dplyr))
even <- function(x) return(! x %% 2)
df <- group_nest(tibble(x = 1:9), even=even(x))
这有效:
# A tibble: 2 x 2
even data
<lgl> <list<tbl_df[,1]>>
1 FALSE [5 x 1]
2 TRUE [4 x 1]
现在我想在第三列中添加组数
mutate(df, count=nrow(data))
我希望得到以下结果:
# A tibble: 2 x 3
even data count
<lgl> <list<tbl_df[,1]>> <int>
1 FALSE [5 x 1] 5
2 TRUE [4 x 1] 4
>
尽管,实际结果与原始数据帧相同,没有添加任何列,没有错误,没什么。
手动检查:
nrow(df[[2]][[1]])
[1] 5
nrow(df[[2]][[2]])
[1] 4
答案 0 :(得分:0)
可以使用
mutate(df, count=map_dbl(data, nrow))
# A tibble: 2 x 3
even data count
<lgl> <list<tbl_df[,1]>> <dbl>
1 FALSE [5 x 1] 5
2 TRUE [4 x 1] 4
答案 1 :(得分:0)
您也可以使用df %>% mutate(count=unlist(lapply(data,nrow)))
。
返回哪个
even data count
<lgl> <list> <int>
1 FALSE <tibble [5 × 1]> 5
2 TRUE <tibble [4 × 1]> 4