[英]R sumif based on multiple conditions
我正在嘗試根據其他列的值的總和或平均值而不是計數來創建匯總表。
Amount Age ActualResult Prediction
100 20 Pass Pass
200 24 Pass Pass
300 30 Pass Fail
400 34 Pass Fail
500 40 Fail Pass
600 44 Fail Pass
700 50 Fail Fail
800 54 Fail Fail
我可以使用以下代碼通過計數獲取表格:
table(data$ActualResult,data$Prediction)
Predict Pass Predict Fail
Actual Pass 2 2
Actual Fail 2 2
但我不知道如何按金額或平均年齡的總和獲得表格:按金額:
Predict Pass Predict Fail
Actual Pass 300 700
Actual Fail 1100 1500
按平均年齡:
Predict Pass Predict Fail
Actual Pass 22 32
Actual Fail 42 52
我將使用什么代碼來按金額和平均年齡創建表格?
這可以通過questionr
包來完成
questionr::wtd.table(
data$ActualResult,
data$Prediction,
weights = data$Amount
)
#> Fail Pass
#> Fail 1500 1100
#> Pass 700 300
要得到平均年齡,除以原始表
questionr::wtd.table(
data$ActualResult,
data$Prediction,
weights = data$Age
) / table(data$ActualResult,data$Prediction)
#> Fail Pass
#> Fail 52 42
#> Pass 32 22
這是一種tidyverse
方式,使用您的數據作為df
:
library(tidyverse)
# sum of Amount
sum_amount <-
df %>%
group_by(ActualResult, Prediction) %>%
summarize(sum = sum(Amount)) %>%
pivot_wider(names_from = "Prediction",
values_from = "sum",
names_prefix = "Predict")
# average Age
avg_age <-
df %>%
group_by(ActualResult, Prediction) %>%
summarize(avg = mean(Age)) %>%
pivot_wider(names_from = "Prediction",
values_from = "avg",
names_prefix = "Predict")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.