新的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