Home > front end >  Calculation of a new variable in R
Calculation of a new variable in R

Time:06-23

this is the dataframe

name  team   stat1    stat2    
a      aa        1          4              
b      aa        2          3
c      bb        3          2
d      bb        4          1

want to calculate a new variable which is calculated

-> (( stat1 of player 'a' / sum of stat1 for that team ) ( stat2 of player 'a' / sum of stat2 for that team ))

-> ((1/1 2) (4/4 3))

any idea on how to do this?

CodePudding user response:

We can group by 'team', and then do the calculation to create a new column

library(dplyr)
 df1 <- df1 %>%
    group_by(team) %>% 
    mutate(new = (stat1/sum(stat1)   (stat2/sum(stat2)))) %>%
   ungroup

-output

df1
# A tibble: 4 × 5
  name  team  stat1 stat2   new
  <chr> <chr> <int> <int> <dbl>
1 a     aa        1     4 0.905
2 b     aa        2     3 1.10 
3 c     bb        3     2 1.10 
4 d     bb        4     1 0.905

data

df1 <- structure(list(name = c("a", "b", "c", "d"), team = c("aa", "aa", 
"bb", "bb"), stat1 = 1:4, stat2 = 4:1), class = "data.frame", 
row.names = c(NA, 
-4L))
  • Related