У меня нет большого опыта в R. У меня есть цикл for, подобный этому:
combination<-read.csv(choose.files())
rownames(n_weight)<-1:154
colnames(n_weight)<-rownames(n_weight)
for(i in 1:length(n_weight)){
for(j in 1:length(n_weight)){
if(i==j){
n_weight[i,j]<-1
}
}}
idex <- dim(combination)[1] #idex is length
m <- as.data.frame(matrix(0, ncol = idex, nrow = idex))
rownames(m) <- as.numeric(combination$FID)
colnames(m) <- rownames(m)
# n_weight: 154X154 matrix
# m: 23562*23562 matrix
# combination: data.frame with 23562 obs.
for(i in 1:23562){
for (j in 1:23562){
if(n_weight[combination[i,]$PC,combination[j,]$PC]==1){
if(n_weight[combination[i,]$RC,combination[j,]$RC]==1){
m[i,j]<-1}
}}}
Это занимает слишком много времени. Есть ли способ векторизовать этот цикл?
Спасибо!