使用ddply而不是for

时间:2013-04-05 11:15:00

标签: r for-loop plyr

我对plyr包很新(和R一般) 我有以下代码

# 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函数简化此代码(或类似的东西,只是为了删除那些丑陋的循环

非常感谢!

菲达

1 个答案:

答案 0 :(得分:2)

你可以尝试这样的事情:

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