我一直在寻找这个,但到目前为止还没有找到明确的答案。可能一直在寻找错误的条款,但也许这里有人可以快速帮助我。这个问题有点基本。
样本数据集:
set <- structure(list(VarName = structure(c(1L, 5L, 4L, 2L, 3L),
.Label = c("Apple/Blue/Nice",
"Apple/Blue/Ugly", "Apple/Pink/Ugly", "Kiwi/Blue/Ugly", "Pear/Blue/Ugly"
), class = "factor"), Color = structure(c(1L, 1L, 1L, 1L, 2L), .Label = c("Blue",
"Pink"), class = "factor"), Qty = c(45L, 34L, 46L, 21L, 38L)), .Names = c("VarName",
"Color", "Qty"), class = "data.frame", row.names = c(NA, -5L))
这给出了一个数据集,如:
set
VarName Color Qty
1 Apple/Blue/Nice Blue 45
2 Pear/Blue/Ugly Blue 34
3 Kiwi/Blue/Ugly Blue 46
4 Apple/Blue/Ugly Blue 21
5 Apple/Pink/Ugly Pink 38
我想做的是相当直截了当。我想对 Qty 列求和(或平均值或标准差)。但是,我也想在以下条件下做同样的操作:
- VarName 包括“Apple”
- VarName 包括“丑陋”
- 颜色等于“蓝色”
谁能给我快速介绍一下如何执行这种计算?
我知道其中一些可以通过 aggregate() 函数完成,例如:
aggregate(set[3], FUN=sum, by=set[2])[1,2]
但是,我相信有比这个更直接的方法。是否有一些过滤器可以添加到类似的功能中sum()
?