我一直在尋找這一段時間,但一直沒能找到明確的答案。可能一直在尋找錯誤的條件,但也許這裏有人可以快速幫助我。這個問題是基本的。計算小計(總和,stdev,平均等)
的樣本數據集:
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
我想這樣做是相當直截了當。我想總結(或平均或stdev)數量列。但是,我也想這樣做在下列條件下相同的操作:
- VarName中包含「蘋果」
- VarName中包括「醜陋」
- 顏色等於「藍」
任何人這可以讓我快速介紹如何執行這種計算?
我知道一些它可以通過聚合()函數來完成,例如:
aggregate(set[3], FUN=sum, by=set[2])[1,2]
不過,我相信有這樣做那麼這更直接的方式。是否有一些過濾器可以添加到像sum()
這樣的功能?
很好的解釋+1來完成。 –
謝謝你的解釋。在學習期間,我發現了一些東西。這似乎給了一個NaN答案:「mean(new_set [new_set $ V2 ==」Blue「&& new_set $ V3 ==」Ugly「,] $ Qty)」。不確定爲什麼會發生這種情況。 – Jochem
@Jochem Opps,我有&&'而不是'&'。 '&&'與媒介不搭配。 – csgillespie