📅  最后修改于: 2023-12-03 15:38:24.836000             🧑  作者: Mango
在 Excel 中,SUMIF 函数可以根据指定的条件计算指定范围内的数据总和。在 R 中,我们可以使用 summarise 和 filter 函数来实现类似的功能。
下面是一个示例数据集:
data <- data.frame(
name = c("Alice", "Bob", "Charlie", "David", "Evelyn"),
age = c(25, 30, 35, 40, 45),
salary = c(50000, 60000, 70000, 80000, 90000),
gender = c("F", "M", "M", "M", "F")
)
我们可以使用下面的代码,计算所有男性员工的平均薪资:
library(dplyr)
data %>%
filter(gender == "M") %>%
summarise(avg_salary = mean(salary))
输出结果为:
avg_salary
1 70000
这段代码的含义是:
filter
函数筛选出所有 gender
列等于 "M"
的行;summarise
函数计算 salary
列的平均值,并将结果命名为 avg_salary
。这相当于在 Excel 中执行以下公式:
SUMIF(gender_range, "M", salary_range) / COUNTIF(gender_range, "M")
其中,gender_range
和 salary_range
分别代表 gender
列和 salary
列的数据范围。
如果要计算所有女性员工的平均薪资,只需要将代码中的 "M"
改成 "F"
即可。
总结一下,在 R 中执行 SUMIF 函数,可以使用 filter
和 summarise
函数结合,根据条件过滤数据之后再进行聚合计算。