2016-08-04 72 views
0

我有一個看起來像這樣的數據:皮爾遜在相關R與一列試驗未定義的數字

ID  Vehicle  MPH 
001  1   50 
001  1   60 
001  2   94 
001  2   78 
001  2   101 
001  3   34 
002  1   56 
002  2   98 
002  2   95 
002  3   36 
002  3   42 

我想用車輛類型相關聯的MPH值,這意味着我會看到一個相關性三個車輛MPH的矩陣。這可能嗎?如果是這樣,我將如何在R中進行此操作。每個ID和車輛的數據行數不一定相同。任何意見是極大的讚賞!

數據:

ID <- c(001, 001, 001, 001, 001, 001, 002, 002, 002, 002, 002) 
Vehicle <- c(1,1,2,2,2,3,1,2,2,3,3,) 
MPH <- c(50, 60, 94,78,101,34,56,98,95,36,42) 
df <- data.frame(ID,Vehicle,MPH) 
+0

相關性是一對成對的統計量。如果你無法匹配車輛1到車輛2的值,那麼執行相關就沒有意義了。 「cor(1:3,1:3)」與「cor(1:3,c(2,1,3))」不同。如果您需要幫助選擇適當的統計方法來比較不同的MPH值,您應該在[stats.se]中提問您的問題,統計問題與主題相關。 – MrFlick

回答

0

不知道完全對預期的輸出。根據描述,我們需要對每個'ID'進行相關性處理,因此我們在創建序列(「Seq」)之後將'ID'的數據集list,然後acast(從reshape2)改爲'wide'格式。通過「車輛」(ave步驟做到這一點)並應用cor函數。

library(reshape2) 
lapply(split(df[-1], df$ID), function(x) cor(acast(transform(x, Seq = 
     ave(Vehicle, Vehicle, FUN = seq_along)), 
     Seq~Vehicle, value.var = "MPH"), use = "pairwise.complete.obs")) 

注:對於use很多選擇,因此最好將其更改爲適合它做好相關的選項。