R中for循环的问题

R中for循环的问题,r,for-loop,R,For Loop,我尝试使用for循环得到1:10之间的素数平方,如下所示: sq_pr_no=功能 { sq_pr_no=c 因为我在1:10 { 对于2:i-1中的p { 如果i%%p==0 { sq_pr_no=csq_pr_no,i^2 } } } } 我得到的错误如下 如果i%%p==0时出错{:缺少需要TRUE/FALSE的值 2:i-1是2:i-1。您想要2:i-1。即使如此,i-1在第一次迭代时也将为0,并且i%%0产生NaN,这会导致您观察到的错误 要修复此错误,请排除p==0的情况 a:b与变

我尝试使用for循环得到1:10之间的素数平方,如下所示:

sq_pr_no=功能 { sq_pr_no=c 因为我在1:10 { 对于2:i-1中的p { 如果i%%p==0 { sq_pr_no=csq_pr_no,i^2 } } } } 我得到的错误如下

如果i%%p==0时出错{:缺少需要TRUE/FALSE的值

2:i-1是2:i-1。您想要2:i-1。即使如此,i-1在第一次迭代时也将为0,并且i%%0产生NaN,这会导致您观察到的错误

要修复此错误,请排除p==0的情况

a:b与变量一起使用时通常是一种危险的模式,因为如果b
您的函数也没有返回任何值。您可以通过为与函数同名的变量赋值来设置返回值,但R的工作方式不是这样的:在R中,函数的值是其最后一个表达式的值,而对于R中的循环,不幸的是没有值。

我想知道如果您设置u,是否会有所帮助t您认为函数中的每一步都在做什么?当p==1时,您将i创建为2:1-1什么是1和0,然后计算1%%0什么给了NaN,什么给了NA,什么给了NA,什么给了ifNA,什么给了错误。