0
我剛開始學習使用R.如何找到每個產品類別中月度價格漲幅最大的前10名產品?如何在每個類別中查找價格漲幅最大的前10名產品
我剛開始學習使用R.如何找到每個產品類別中月度價格漲幅最大的前10名產品?如何在每個類別中查找價格漲幅最大的前10名產品
如果你可以使用包dplyr:
library(dplyr)
df <- read.table(text="
Category, Product, PrevMonthPrice, CurrentMonthPrice
Food,Orange,5,10
Clothing,Shirt,25,35
Food,Apple,2,4
Clothing,Hat,25,15
Food,Soup,4.5,3
Clothing,Coat,150,200
Food,Meat,9,11
Clothing,Scarf,20,25
Food,Rice,8,12
Clothing,Shoes,150,125", sep=",", header=TRUE)
df %>%
mutate(increase=CurrentMonthPrice-PrevMonthPrice) %>%
group_by(Category) %>%
arrange(-increase) %>%
top_n(2)
Source: local data frame [4 x 5]
Groups: Category [2]
Category Product PrevMonthPrice CurrentMonthPrice increase
(fctr) (fctr) (dbl) (int) (dbl)
1 Clothing Coat 150 200 50
2 Clothing Shirt 25 35 10
3 Food Orange 5 10 5
4 Food Rice 8 12 4
你可以得到與 「純」 R相同的結果:
df$increase=df$CurrentMonthPrice-df$PrevMonthPrice
top=2
res=lapply(split(df,df$Category), function(xd){
xd[with(xd,order(-increase)),][1:top,]
})
do.call(rbind,res)
*「的問題,要求我們建議還是找一本書,工具,軟件庫,教程或其他非現場資源對於堆棧溢出而言是無關緊要的,因爲它們傾向於吸引自以爲是的答案和垃圾郵件,而是描述問題以及到目前爲止解決問題所做的工作。「* – 2015-10-07 00:27:33
我沒有認爲這是一個工具請求。需要更多信息 –
第一步是**按產品的價格**提供數據**。如果你有這些,展示一個小樣本,或模擬一個小樣本,我們可以開始幫助! – Gregor