数据框添加基于条件计数频率的列

问题描述 投票:0回答:2

我有这样的数据框

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

我想要收到的是每行的行数计数器的列,满足这样的标准: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

有什么想法如何去做吗?

r dataframe counter frequency
2个回答
2
投票

试试这个:

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
投票

我用过@FALL Gora 答案

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

但是我已经添加了

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

现在可以使用了

© www.soinside.com 2019 - 2024. All rights reserved.