小编wis*_*ool的帖子

R中的循环和替代方案

我有一个矩阵(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中的循环.如果有人有更有效的方式请分享.

谢谢.

loops r matrix

3
推荐指数
2
解决办法
311
查看次数

标签 统计

loops ×1

matrix ×1

r ×1