Как посчитать экземпляры чего-либо в одном столбце при заданном значении другого столбца? - PullRequest
0 голосов
/ 04 октября 2018

У меня в основном есть кадр данных, подобный этому:

Name Value   
a    TRUE
a    TRUE
b    FALSE
a    FALSE
c    TRUE

, но длиннее, и я хочу получить количество раз, когда a, b и, c появляются.Я также хочу получить количество времени, которое TRUE появляется для a, b и c.

Итак, по сути, я хочу:

Name Count TRUEs
a    3     2
b    1     0
c    1     1

Как бы я это сделал?

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Альтернатива Base R с использованием by

do.call(rbind, by(df, df$Name, FUN = function(x)
    c(Count = length(x$Value), TRUEs = sum(x$Value == TRUE))))
#  Count TRUEs
#a     3     2
#b     1     0
#c     1     1

Или с использованием tapply

do.call(rbind, with(df, tapply(Value, Name, FUN = function(x)
    c(Count = length(x), TRUEs = sum(x == TRUE)))))
0 голосов
/ 04 октября 2018

С dplyr:

library(dplyr)
df %>% group_by(Name) %>% summarise(Count = n(), Trues = sum(Value == TRUE))
# A tibble: 3 x 3
   Name Count Trues
  <chr> <int> <int>
1     a     3     2
2     b     1     0
3     c     1     1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...