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)))