1
頁158韋翰的GGPLOT2的ddply誤解:數據分析精美圖案,指出這個例子:在韋翰的GGPLOT2書
選擇兩個最小的鑽石
ddply(鑽石,(彩色),子集,訂購。 (克拉)< = 2)
菱形數據集是巨大的:
> nrow(diamonds)
[1] 53940
因此,我所選擇的小樣本:
library(plyr)
library(ggplot2)
set.seed(123)
rows=sample(nrow(diamonds),50)
mydiamonds=diamonds[rows,]
然後我嘗試了他對我的命令。
> ddply(mydiamonds,.(color),subset,order(carat)<=2)
carat cut color clarity depth table price x y z
1 0.51 Ideal D VS2 61.2 55 1882 5.18 5.16 3.16
2 0.58 Ideal D VVS1 61.6 60 3154 5.34 5.35 3.29
3 0.70 Premium E SI1 59.7 60 2394 5.81 5.79 3.46
4 0.42 Ideal E SI2 62.9 56 898 4.80 4.77 3.01
5 0.40 Premium F SI1 61.2 58 945 4.74 4.71 2.89
6 0.61 Premium F SI1 60.4 56 1359 5.47 5.43 3.29
7 1.52 Premium G VS2 62.6 55 12958 7.39 7.28 4.59
8 0.33 Ideal G VVS1 61.5 56 868 4.45 4.46 2.74
9 0.71 Ideal H IF 62.0 54 3190 5.71 5.75 3.55
10 1.04 Ideal H VS2 60.7 56 5805 6.56 6.61 4.00
11 0.70 Ideal I SI1 61.8 57 2436 5.67 5.72 3.52
12 0.31 Ideal I SI1 62.5 56 537 4.35 4.29 2.70
13 1.35 Premium J VS2 60.5 56 6254 7.19 7.12 4.33
14 0.57 Premium J VS2 60.2 62 1176 5.40 5.33 3.23
請注意,顏色H的兩個最小克拉尺寸是0.71和1.04。然而,考慮以下因素:
> subset(mydiamonds,color=="H")
carat cut color clarity depth table price x y z
22060 1.74 Very Good H SI2 62.1 59 10086 7.65 7.78 4.79
50726 0.70 Ideal H SI1 62.5 56 2294 5.64 5.69 3.54
2458 0.71 Ideal H IF 62.0 54 3190 5.71 5.75 3.55
38201 0.44 Very Good H VVS1 63.1 56 1016 4.83 4.87 3.06
29333 0.31 Premium H VS1 62.6 60 698 4.32 4.30 2.70
17151 1.50 Good H SI2 60.8 64 6846 7.27 7.20 4.40
12485 1.07 Very Good H VS2 61.5 57 5254 6.57 6.63 4.06
14334 1.04 Ideal H VS2 60.7 56 5805 6.56 6.61 4.00
注意,這說明我還沒有與ddply命令所選顏色H的兩個最小克拉鑽石。
那麼,這是書中的一個錯誤,還是我對這個問題錯誤?那麼ddply的正確用法是從我的數據集中選擇每種顏色的兩顆最小的鑽石,這將是什麼?
這對大衛有意義嗎? @hadley?還是人?任何反饋 ? –