2016-08-04 7 views
0

I는 다음과 같습니다 데이터가 있습니다피어슨의 상관 관계

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 값의 상관 관계를하고 싶습니다를 3 차량 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에 대해 상관 관계를 계산해야하므로 list에 'ID', acast (reshape2)의 시퀀스를 'wide'형식으로 만든 다음 시퀀스 열 ("Seq")을 만든 후 데이터 세트를 split으로 만듭니다. "Vehicle"(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 많은 옵션이 있습니다, 그래서 잘 맞는 관련 옵션으로 변경하는 것이 좋습니다.