2013-12-10 17 views
1

我在跟蹤我的貓多少,並試圖弄清楚它們是否與他們吃了多少食物有關。R:通過列在兩個矩陣上運行corr

所以,如果我有以下數據:

food <- cbind(fluffy=c(0.9,1.1,1.3,0.7),misterCuddles=c(0.5,1.2,1.4,0.5)) 
poop <- cbind(fluffy=c(0.9,1.1,1.3,0.7),misterCuddles=c(-0.5,-1.2,-1.4,-0.5)) 
dates <- c("2013-01-01", "2013-01-02", "2013-01-03","2013-01-04") 
rownames(food) <- dates 
rownames(poop) <- dates 
cube <- abind(food, poop, along=3) 

說明了好奇:

  • 金額均以套十倍便士:1.1是指船尾的重量大約相當於11便士
  • 負面糞便數量表明,先生擁抱是獨角獸的一部分

這g艾夫斯我的情況如下:

> cube 

, , food 

      fluffy misterCuddles 
2013-01-01 0.9   0.5 
2013-01-02 1.1   1.2 
2013-01-03 1.3   1.4 
2013-01-04 0.7   0.5 

, , poop 

      fluffy misterCuddles 
2013-01-01 0.9   -0.5 
2013-01-02 1.1   -1.2 
2013-01-03 1.3   -1.4 
2013-01-04 0.7   -0.5 

現在,如果我想找到相關的老總擁抱來證明他的魔力:

> corr(cube[,"misterCuddles",]) 

[1] -1 

我想是每個關聯號碼命名的矢量cat:

> c(fluffy=1.0,misterCuddles=-1.0) 

     fluffy misterCuddles 
      1   -1 

有沒有一種方法可以一次完成此操作,理想情況下並行?事實上,我有貓咪。

謝謝!

編輯

它可以像那樣簡單......

> result <- simplify2array(mclapply(colnames(food), function(x) corr(cube[,x,]))) 
> names(result) <- colnames(food) 
> result 
     fluffy misterCuddles 
      1   -1 

回答

2
library(boot) # for corr 
sapply(dimnames(cube)[[2]], function(x) corr(cube[ , x, ])) 

# fluffy misterCuddles 
#   1   -1 
+0

這是極好的,謝謝。不知道'dimnames' – dvmlls