2012-05-11 33 views

回答

1

最簡單的就是計算相關矩陣,那麼你可以索引,如果你想:

df <- data.frame(rnorm(10),rnorm(10),rnorm(10)) 
corMat <- cor(df) 

例如,變量1和2之間的相關性:

corMat[1,2] 

還是你真的需要在單獨的對象中有特定的相關性?

編輯

這裏是你想要的for循環例如:

df <- data.frame(rnorm(10),rnorm(10),rnorm(10),rnorm(10)) 

for (i in seq(1,ncol(df),by=2)) 
{ 
    assign(paste("cor",i/2+0.5,sep=""),cor(df[,i],df[,i+1])) 
} 

雖然這是非常低效的。

+0

Hallo Sascha,非常感謝您的評論。但它必須是計算每對變量相關性的for-loop,例如, 1)cor1 = cor(col1,col2),cor2 = cor(col3,col4)等等。 –

+1

爲什麼它必須是for循環?這在R中是非常低效的編程。如果這是一項家庭作業,請標記爲這樣。無論如何,編輯的方式來做到這一點。 –

0

可以使用apply與廣義函數:

df<-data.frame(a=rnorm(10),b=rnorm(10),c1=rnorm(10),d=rnorm(10)) 
f<- function(x) { 
    cc=x[1] #column index 
    if (cc<ncol(df)){ 
    cor(x[-1],df[,cc+1]) #ignore 1st element [-1] 
    } 
} 

apply(rbind(1:dim(df)[2], 2, f) #apply over columns after adding a column id numbers at the top row 

可能是有一個R函數來獲得列/行ID內適用的功能?在這種情況下,我們不需要修改列標識符。