循环条件中的多if语句 我是帕多瓦大学的博士生,我想在R·C·V中写一个小剧本(第一篇)。3.0.1进行流行病学模拟。 我想根据形状文件中用nb2mat构造的邻域矩阵来更改883个值的向量的值:如果I和j(两个单元格)是邻域(矩阵),并且I或j在向量中有正值,我想将I和j的值都转换为1(正值),否则I和j的值应该保持为0。当我启动下一个小脚本时: for(i in 1:883) { for(j in 1:883) { if(MatriceDist[i,j] > 0 & ((vectorID[i] > 0 | vectorID[j] > 0)) { vectorID[i] = 1 & vectorID[j] = 1 print(vectorID) } } }

循环条件中的多if语句 我是帕多瓦大学的博士生,我想在R·C·V中写一个小剧本(第一篇)。3.0.1进行流行病学模拟。 我想根据形状文件中用nb2mat构造的邻域矩阵来更改883个值的向量的值:如果I和j(两个单元格)是邻域(矩阵),并且I或j在向量中有正值,我想将I和j的值都转换为1(正值),否则I和j的值应该保持为0。当我启动下一个小脚本时: for(i in 1:883) { for(j in 1:883) { if(MatriceDist[i,j] > 0 & ((vectorID[i] > 0 | vectorID[j] > 0)) { vectorID[i] = 1 & vectorID[j] = 1 print(vectorID) } } },r,estimation,R,Estimation,软件给出的答案是: Error: unexpected '{' in: " { for(j in 1:883) { while(MatriceDist[i,j] > 0 & ((vectorID[i] > 0 | vectorID[j] > 0)) {" 我认为这是if语句中的一个错误,但我不明白如何解决它。。。 谢谢大家! Elisa检查括号:-) 在if语句中,在vectorID之前有一个(到much) 请仔细检查声明中现在指定的条件是否仍然是您需要的条件

软件给出的答案是:

Error: unexpected '{' in: 
" { for(j in 1:883) 
 { while(MatriceDist[i,j] > 0 & ((vectorID[i] > 0 | vectorID[j] > 0)) {" 
我认为这是if语句中的一个错误,但我不明白如何解决它。。。 谢谢大家! Elisa检查括号:-)

if
语句中,在
vectorID
之前有一个
到much)

请仔细检查声明中现在指定的条件是否仍然是您需要的条件

顺便说一句:for循环在R中非常慢。如果您知道向量的结束大小,请尝试预先分配完整的矩阵。这将使速度加快一点。

检查括号:-)

if
语句中,在
vectorID
之前有一个
到much)

请仔细检查声明中现在指定的条件是否仍然是您需要的条件


顺便说一句:因为循环在R中非常慢。如果你知道向量的结束大小,试着预先分配完整的矩阵。这将使事情加快一点。

我同意这个问题在这里是离题的,因为它没有统计内容。我个人认为它的质量对于stackoverflow来说也太低。@Phalaen:你列出的错误不适合我atch代码(while vs.if)。if子句中有a)括号缺失(在>0)之后),或者((vectorID[i]中有一个括号过多-子句正文对我来说也没有多大意义。这个问题似乎离题了,因为它是关于编程的。我同意这个问题离题了,因为它没有统计内容。我个人认为它对stackoverflow来说质量也太低。@Phalaen:您列出的错误与代码不匹配(而不是if)。有一个错误)if子句中>0之后缺少括号)-或者((vectorID[i]-中的括号太多,子句正文对我来说没有太大意义。这个问题似乎与主题无关,因为它与编程有关。
for(i in 1:883) { 
    for(j in 1:883) { 
        if(MatriceDist[i,j] > 0 & (vectorID[i] > 0 | vectorID[j] > 0)) { vectorID[i] = 1 & vectorID[j] = 1 print(vectorID) 
        } 
    } 
}