新的R,并在我的头!使用R中列间的成对计算创建矩阵R
我想编写的代码,将结合以下步骤:
a)求最小值,每行,两列
B)之和最小值之间找到
Ç )在许多列中执行此操作并构造结果的成对矩阵
步骤a & b对于一次两列很容易。像这样:
column1 = c(0.08, 0.20, 0.09, 0.19, 0.25, 0.20, 0.00)
column2 = c(0.07, 0.19, 0.09, 0.21, 0.25, 0.19, 0.00)
ps = data.frame(column1, column2)
sum(pmin(ps$column1,ps$column2))
但对于步骤c中,我有困难编写将用于由7行32列的数据帧的每个成对列比较执行此操作代码。这是我到目前为止:
d <- replicate(32, rnorm(7))
c <- combn(seq_len(ncol(d)),2)
mat1 <- matrix(0,ncol=32,nrow=32,dimnames=list(colnames(d),colnames(d)))
v1 <- unlist(lapply(seq_len(ncol(c)),function(i) {d1<-d[,c[,i]]; length(which(d1[,1]!=0 & d1[,2]!=0)) }))
mat1[lower.tri(mat1)]<-v1
我很确定我的问题在于与“v1”相关的“功能”命令。但我很难过,可以真正使用一点帮助!
同样,我的目标是在每个成对列比较之间有一个总和最小值的32x32矩阵。
这是否有意义?
非常感谢。
嗨亚伦,我用你的第一个建议,它效果很好!非常感谢你帮助我解决这个问题! – Monte