【发布时间】:2015-12-26 02:30:51
【问题描述】:
我有一个矩阵 (15000*3000) 目标是根据原始矩阵有条件地分配新值。例如,我想实现的标准是这样的:
这就是我现在的代码设置方式。
for( i in 1:2000 ) {
for( j in 1:15000 ) {
if(DF[j,i]>0 && DF[j-1,i]<0) DF1[j,i]=1
else if (DF[j,i]<0 && DF[j-1,i]>0) DF1[j,i]=0
}
}
DF 是原始矩阵。
DF1 是新形成的矩阵
还有其他方法可以做到这一点吗?更快的方法?
我已经读到应该避免 R 中的循环。
【问题讨论】:
-
t和x是什么?您是否打算输入i和j? -
DF1[DF[-1,]>0 & DF[-nrow(DF),] < 0] <- 1等怎么样? -
对不起我的粗心大意。if(DF[j,i]>0 &&DF[j-1,i]0) DF1[j,i]=0
-
非常感谢!很有用。
-
如何将其发布为答案?如果马拉不想,那小熊自己来回答……