Как я могу увидеть, сколько комбинаций определенных значений содержится в столбцах

#r

Вопрос:

У меня есть набор данных, который выглядит так:

 Group          ID   
UP              1
UP              1
UP              2
UP              2
UP              2
UP              1  
UP              1
UP              2
UP              2
UP              1
UP              1
 

Есть ли какой-нибудь способ узнать, сколько раз 1 находится под 1 в столбце идентификатора?

Ответ №1:

Работает ли это:

 library(dplyr)
df %>% mutate(flag = case_when(ID == 1 amp; lag(ID) == 1 ~ 1, TRUE ~ 0)) %>% pull(flag) %>% sum
[1] 3
 

Комментарии:

1. @StackOverload9, просто поменяйся ID == 2

Ответ №2:

Основание R :

 sum(df$ID == 1 amp; c(tail(df$ID, -1), NA) == 1, na.rm = TRUE)
#[1] 3
 

Вы также можете использовать dplyr::lag и data.table::shift

 sum(df$ID == 1 amp; dplyr::lag(df$ID) == 1, na.rm = TRUE)

sum(df$ID == 1 amp; data.table::shift(df$ID) == 1, na.rm = TRUE)