为什么在R中的这个`if`语句中没有赋值这个对象?

DQd*_*dlM 1 r function

我试图通过使用R解决这个ProjectEuler问题来学习R.

如果我cat在我的函数中使用,我可以得到正确的值列表:

> n <- 1:9
> s <- 0
> ck <- function(n)
+   for(i in n) 
+     if(i/3 == round(i/3) | i/5 == round(i/5)) cat(i) 
> ck(n) 
3569> 
Run Code Online (Sandbox Code Playgroud)

但是如果我尝试将这些分配给一个对象来对它们求和它就不起作用:

> n <- 1:9
> s <- 0
> ck <- function(n)
+   for(i in n) 
+     if(i/3 == round(i/3) | i/5 == round(i/5)) s <- c(s, i) 
> ck(n)
> s
[1] 0
>
Run Code Online (Sandbox Code Playgroud)

为什么第二个功能不起作用?

谢谢.

Dir*_*tel 6

全球/地方混乱.定义s ck(),并返回它.就像是

   ck <- function(n) {
     s <- 0
     for(i in n) {  
       if(i/3 == round(i/3) | i/5 == round(i/5)) {
         s <- c(s, i) 
       }
     }
     s
   }
Run Code Online (Sandbox Code Playgroud)