2016-01-29 36 views
0

我正在處理類似於以下內容的數據樣本;介意你的原始數據幀是大了很多:如何在表格或數據框中計算中位數函數?

vehicle id trip code 
     1   abc 
     1   bcd 
     1   ghy 
     3   lhy 
     3   gfy 
     6   awl 
     6   rhr 

我已經把它變成一個表,以便看到,每一個獨特的車輛已旅行的頻率。

vehicle id Trip (freq) 
     1   3 
     3   2 
     6   2 

我想計算每輛車的中位數,以便稍後對它們進行平均。我應該通過在數據框上運行一個腳本來處理這個問題,還是通過告訴R將[1,2,3]和[2]擴展爲[1,2]然後在表中的頻率上做到這一點在這些擴展中運行中位數?

我有下面的代碼一點,但我不知道這是否是進場的最佳方式:

TRIPS_28$vehicle_id %>% 
group_by(TRIPS_28$vehicle_id) %>% 
median(count(TRIPS)) 

感謝幫助!

+1

我不明白你什麼計算的位數? – Dason

回答

0

這聽起來像你有這樣的數據:

(dat <- data.frame(vehicleID = c(1, 3, 6), Trip = c(3, 2, 2))) 
# vehicleID Trip 
# 1   1 3 
# 2   3 2 
# 3   6 2 

這聽起來像你現在要採取的[1, 2, ..., t]中位數在列Trip每個值t。序列[1, 2, ..., t]的中位數是(t+1)/2,所以你可以簡單地做:

dat$median <- (dat$Trip + 1)/2 
dat 
# vehicleID Trip median 
# 1   1 3 2.0 
# 2   3 2 1.5 
# 3   6 2 1.5 
+0

這很完美,謝謝! – LoF10