我正在跟踪我的猫有多大势头,并试图弄清楚这与他们吃多少有关。
所以,如果我有以下数据:
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)
好奇的笔记:
这给了我以下内容:
> 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
现在,如果我想找到mister cuddles的相关性来展示他的魔力:
> corr(cube[,"misterCuddles",])
[1] -1
我想要的是一个带有每只猫相关数的命名向量:
> 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
答案 0 :(得分:2)
library(boot) # for corr
sapply(dimnames(cube)[[2]], function(x) corr(cube[ , x, ]))
# fluffy misterCuddles
# 1 -1