我有一个矩阵(1051*1051),其对角线上有0zeros,其他地方的值大于0zero.目标是有条件地重新分配矩阵中的一些值.例如,我想要实现的标准是:如果任何元素大于400,那么该行/列元素将被赋予0zero值.
这就是我现在的代码设置方式:
dl <- 400 # condition
for( i in 1:dim(DIST)[1] ) {
for( j in 1:dim(DIST)[1] ) {
if( DIST[i,j] > dl ) {
DIS[i,j] <- 0
}
}
}
Run Code Online (Sandbox Code Playgroud)
DIST是原始矩阵(1051*1051).
DIS是DIST的副本并进行编辑.
我的问题:有没有其他方法可以做到这一点?更快的方法?
我已经读过应该避免R中的循环.如果有人有更有效的方式请分享.
谢谢.