У меня есть набор данных, и я хочу подсчитать, сколько раз GB = 0 при Time =1.
GB = 0
Time =1
Time GB 1 300 2 500 1 0 2 200 1 0
Ожидаемый результат - нет строк GB = 0, когда Time = 1 равно 2
Time = 1
Несколько способов сделать это
sum(with(df, Time == 1 & GB == 0)) #[1] 2
С subset
subset
nrow(subset(df, Time == 1 & GB == 0))
С dplyr
dplyr
library(dplyr) df %>% filter(Time == 1 & GB == 0) %>% nrow()
Подход Base R:
# check for data where df$GB = 0 & df$Time=1 and count the length nrow(df[df$GB==0 & df$Time==1,])
Выход:
[1] 2
ИЛИ
table(df[df$GB==0 & df$Time==1,])
GB Time 0 1 2
Вы можете использовать summarise из dplyr.
summarise
library(dplyr) dat1 %>% summarise(result = sum(GB == 0 & Time == 1))
, что дает:
# result #1 2
и данные:
dat1 <- read.table(header = TRUE, text=" Time GB 1 300 2 500 1 0 2 200 1 0 ")