我想結合一個數據框以從一個數據框中獲取項目名稱,最便宜的購買區域和最高銷售區域。我試圖通過合併來完成此操作,但一直存在錯誤。任何人有另一個建議?結合基於數據幀的子集的最低和最高值
目標
item.name id buy.price buy.region sell.price sell.region
Isogen 37 82.02 Amarr 434.37 Jita
Nocxium 38 395.00 Amarr 449.27 Jita
....
DATA
> eve.data[150:160,]
buy.sell item.id region price date item.name
76 s 37 Amarr 99.94956 2016-10-05 22:30:42 Isogen
1077 b 37 Jita 83.08134 2016-10-05 23:05:27 Isogen
1078 b 37 Amarr 82.02000 2016-10-05 22:30:42 Isogen
77 s 38 Jita 434.37451 2016-10-05 23:05:27 Nocxium
78 s 38 Amarr 449.24791 2016-10-05 22:30:42 Nocxium
1079 b 38 Jita 421.00000 2016-10-05 23:05:27 Nocxium
1080 b 38 Amarr 395.00000 2016-10-05 22:30:42 Nocxium
79 s 39 Jita 1036.06204 2016-10-05 23:05:27 Zydrine
80 s 39 Amarr 1389.18975 2016-10-05 22:30:42 Zydrine
1081 b 39 Jita 1009.97722 2016-10-05 23:05:27 Zydrine
1082 b 39 Amarr 1063.52062 2016-10-05 22:30:42 Zydrine
我的代碼:
x<-paste0(0:500,collapse=",")
eve.url<-paste0("http://eve-marketdata.com/api/item_prices2.txt?char_name=demo&type_ids=",x,"®ion_ids=10000002,10000033&buysell=a")
eve.data<-read.table(url(eve.url),sep="\t",col.names=c("buy.sell","item.id","region","price","date"),stringsAsFactors=F)
eve.data$region[eve.data$region==10000002]<-"Jita"
eve.data$region[eve.data$region==10000033]<-"Amarr"
eve.data$item.name <- item.ids[match(eve.data$item.id, item.ids$typeID),2]
#doesnt work
group_by(eve.data$buy.sell)%>%mutate(low.buy.price=XXX,low.buy.region=XXX, high.sell.price=XXX,high.sell.region=XXX)
這似乎工作,但它有多個行每個項目 – Rilcon42
啊,是的。在關係中存在多行返回。你有選擇你喜歡哪一種的方法嗎?你應該隨機選擇一個,還是排除這個區域? –
我的歉意,我的意思是選擇每個項目,並列出最低的購買價格和最高的賣出價格 – Rilcon42