如何基于R中的另一列在列中添加值

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

从x

我有两列:

Gender   Score
male     20
female   25
male     10
female   10

例如,在R中,如何将男性的总得分相加?

r
1个回答
1
投票

我们可以使用

library(dplyr)     
x %>%
      mutate(totalScore = sum(Score[Gender == "male"]))

如果“女性”应保留为NA

 x %>%
      mutate(totalScore  = case_when(Gender == "male" ~ sum(Score),
         TRUE ~ NA_real_))

对于两个“性别”都适用

 x %>%
    group_by(Gender) %>%
    mutate(totalScore = sum(Score))

或在base R中>

x['totalScore'] <- with(x, sum(Score[Gender == "male"]))

或选择性地为行添加

i1 <- x$Gender == "male"
x['totalScore'][i1] <- sum(x$Score[i1])
© www.soinside.com 2019 - 2024. All rights reserved.