使用所有变量在数据框中定义组

时间:2018-12-06 02:30:17

标签: r

我想按组创建行数,从而使用数据框中的 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 可以产生所需的结果?

1 个答案:

答案 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)