2017-08-09 6 views
1

ケースの数をカウントする方法(sqlのCOUNT ... GROUP BYに似ています)?ここで Rでカウントする方法

library(magrittr) 
library(dplyr) 
df <- data.frame(dose=c("A", "B", "C","D", "E", "B","B", "E", "A","C", "C", "B"), 
       len=c(4.2, 10, 29.5,4.2, 10, 29.5,4.2, 10, 29.5,4.2, 10, 29.5)) 
mt_mean <- df %>% group_by(dose) %>% summarise(avg_count = sum(len)) 
mt_mean 

を働く私のコードですが、私は

だから私は変化していないときの和avg_count = sum(len) avg_count = count(len)に次のエラーがスローされたカウントをしたい

Error in summarise_impl(.data, dots) : 
    Evaluation error: no applicable method for 'groups' applied to an object of class "c('double', 'numeric')". 

Rでカウントする方法は?

+1

'集計(LEN〜用量、DF、長さ)' –

+1

私はこのために 'data.table'を使用して好きです。 'setDT(df); df [、.N、by =投与量] ' – Mako212

答えて

3

dplyrライブラリに滞在し、summarise使用:

mt_mean <- df %>% 
    group_by(dose) %>% 
    summarise(avg_count = n()) 

を別の方法として、あなたは(@Frankあたり)countdplyrでさらに簡単に行くことができます。

mt_mean <- df %>% 
    count(dose) %>% 
    rename(avg_count = n) 

この方法で、あなたも避けます不要なグループ分け。

いずれかの方法で、両方のアプローチはあなたを与える:

> mt_mean 
# A tibble: 5 x 2 
    dose avg_count 
    <fctr>  <int> 
1  A   2 
2  B   4 
3  C   3 
4  D   1 
5  E   2 
関連する問題