根据多个条件创建新列,例如唯一计数和&和

时间:2018-02-03 12:29:29

标签: r sum dplyr

name <- c("a","a","a","b","b","a","a") 
itr <- c(1,1,2,1,1,3,3) 
var_bin <- c(1,1,0,1,1,1,1) 
sum_var_bin_exp_col <- c(2,2,2,1,1,2,2)
df <- data.frame(name,itr,var_bin,sum_var_bin_exp_col)

我想创建一个列(sum_var_bin_exp_col),它基于col var_bin&amp;中给出的值。 group_by nameitr列。 sum_var_bin_exp_col基本上是var_bin col的二元值。

itr&#34; a&#34; itr 1,itr 2和name 3 var_bin 1的name分别为1,0,1。

所以,总和是2 ......我只计算一次重复值。

1 个答案:

答案 0 :(得分:1)

如果我理解了所需的结果,您可以使用dplyr来实现它。

library(dplyr)

df_res <- df %>% 
   group_by(name, itr) %>% 
   mutate(sum_var_bin_exp = sum(var_bin)

df_res

## A tibble: 7 x 5
## Groups:   name, itr [4]
#  name    itr var_bin sum_var_bin_exp_col sum_var_bin_exp
#  <fct> <dbl>   <dbl>               <dbl>           <dbl>
#1 a      1.00    1.00                2.00            2.00
#2 a      1.00    1.00                2.00            2.00
#3 a      2.00    0                   2.00            0   
#4 b      1.00    1.00                1.00            2.00
#5 b      1.00    1.00                1.00            2.00
#6 a      3.00    1.00                2.00            2.00
#7 a      3.00    1.00                2.00            2.00