我想按组创建行数,从而使用数据框中的 all 变量定义组。
以下是我尝试过的几种方法,以可用的 starwars 数据集为例:
library(dplyr)
myData <- starwars %>% select(skin_color, gender, species)
# Method 1: using add_count
myData %>%
add_count(1:ncol(myData))
# Method 2: using aggregate
aggregate(. ~ 1:ncol(myData), data = myData, FUN = function(x){NROW(x)})
两者都给出一个错误,即长度不正确。我怀疑我使用了错误的语法。是否有适当的语法来捕获数据框中的所有列而不必键入所有列,以便 add_count 和 aggregate 可以产生所需的结果?
答案 0 :(得分:0)
你还在吗?
myData %>% group_by_all() %>% add_count()
# A tibble: 87 x 4
# Groups: skin_color, gender, species [59]
skin_color gender species n
<chr> <chr> <chr> <int>
1 fair male Human 13
2 gold NA Droid 1
3 white, blue NA Droid 1
4 white male Human 1
5 light female Human 6
6 light male Human 5
7 light female Human 6
8 white, red NA Droid 1
9 light male Human 5
10 fair male Human 13
# ... with 77 more rows
或使用aggregate
aggregate(count ~ ., data = transform(myData, count = 1), FUN = sum)