2013-04-05 80 views
0

我是很新的plyr包(R的單位一般) 我有下面的代碼使用ddply,而不是爲

# I have some dataframe df 
# columns: 
#  -somefactor: factor 
#  -value:  numeric 

f<-levels(df$somefactor) 
k<-length(f) 
m<-mat.or.vec(k,k) 
for(i in 1:k) { 
    for (j in 1:k) 
    m[i,j]=cor(df[somefactor==f[i],]$value,df[somefactor==f[j],]$value) 
} 

我怎麼能使用ddply功能(或類似的東西簡化這段代碼,只是爲了除去那些醜陋的循環

感謝很多

菲達

回答

2

你可以嘗試這樣的事情:

cor(as.data.frame(split(df$value, df$somefactor)))