фрейм данных добавить столбец с условной частотой отсчета - PullRequest
0 голосов
/ 18 марта 2019

У меня есть такой фрейм данных

#dt
#   a b c
#1: a 1 d
#2: a 1 d
#3: b 0 b
#4: b 1 d
#5: b 0 b

И то, что я хотел бы получить, это columnt со счетчиком для каждого числа строк, которое соответствует следующим критериям: b = 1 и c = d

#dt
#   a b c counter
#1: a 1 d 2
#2: a 1 d 2
#3: b 0 d 1
#4: b 1 d 1
#5: b 0 b 0

Есть идеи как это сделать?

Ответы [ 2 ]

2 голосов
/ 18 марта 2019

Попробуйте это:

library(dplyr)
dt =  data.frame(a = c("a","a","b","b","b"),
                 b= c(1,1,0,1,0),
                 c = c("d","d","b","d","b"))
dt <- dt %>%
  mutate(counter = (b == 1) +( c == "d") )
0 голосов
/ 18 марта 2019

Я использовал ответ @FALL Gora

dt %>% mutate(counter = as.numeric(((b == 1) & ( c == "d"))))

, но я добавил

dt %>% group_by(a) %>% mutate(counter1=sum(counter))

и теперь он работает

...