如何根据 r 中的条件对列求和


您可以使用以下基本语法根据 R 中的条件对列求和:

 #sum values in column 3 where col1 is equal to 'A'
sum(df[ which (df$col1==' A '), 3])

以下示例展示了如何在实践中使用以下数据框使用此语法:

 #create data frame
df <- data. frame (conference = c('East', 'East', 'East', 'West', 'West', 'East'),
                 team = c('A', 'A', 'A', 'B', 'B', 'C'),
                 points = c(11, 8, 10, 6, 6, 5),
                 rebounds = c(7, 7, 6, 9, 12, 8))

#view data frame
df

  conference team points rebounds
1 East A 11 7
2 East A 8 7
3 East A 10 6
4 West B 6 9
5 West B 6 12
6 East C 5 8

示例 1:根据条件添加列

以下代码显示如何查找团队等于“A”的行的分数列总和:

 #sum values in column 3 (points column) where team is equal to 'A'
sum(df[ which (df$team==' A '), 3])

[1] 29

以下代码显示如何查找点数大于 9 的行的跳出率列的总和:

 #sum values in column 4 (rebounds column) where points is greater than 9
sum(df[ which (df$points > 9), 4])

[1] 13

示例2:根据多个条件添加列

以下代码显示如何查找团队等于“A”会议等于“East”的行的分数列总和:

 #sum values in column 3 (points column) where team is 'A' and conference is 'East'
sum(df[ which (df$team==' A ' & df$conference==' East '), 3])

[1] 29

请注意, &运算符在 R 中表示“和”。

示例 3:根据多个条件之一添加列

以下代码显示如何查找球队等于“A”“C”的行的分数列总和:

 #sum values in column 3 (points column) where team is 'A' or 'C'
sum(df[ which (df$team == ' A ' | df$team ==' C '), 3])

[1] 34

请注意|运算符在 R 中的意思是“或”。

其他资源

以下教程解释了如何在 R 中执行其他常见功能:

如何对 R 中的特定列求和
如何对 R 中的特定行求和
如何在R中按组计算总和

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注