如何根据R中的逻辑表达式为矢量赋值

时间:2016-02-19 20:48:53

标签: r function vector

我试图编写以下功能:

f <- function(q, r) {
  for(i in seq(from = (1 - r), to = (r - 1), by = 1)){
  s <- r + i;
    if (q %% s == 0) {
    here(s)
    }
  }
}

然而,我在这里&#34;在这里,&#34;我希望那些满足&#34所规定标准的s值;如果&#34;它上面的声明,以便我可以对它执行操作(取最大值和最小值,以及诸如此类),即形式的向量:

v&lt; - c(符合if语句规定标准的s的值)

我确定这是相对简单的,但这是我尝试在R中写的第一个函数,所以请耐心等待,如果可以的话。感谢。

1 个答案:

答案 0 :(得分:1)

根据我在您的代码中的理解,您想要创建一个从(1-r+r)(r-1+r)的向量,然后如果该向量的值可以被q整除,那么您想要应用一个函数它们。

我创建了一个仅满足条件的数字的向量(通过使用TRUE/FALSE向量进行子设置),然后仅将函数应用于满足条件的那些。

我希望这段代码正确解释你的功能。

f <- function(q, r) {
    s <- seq(1, 2*r-1, by=1)
    ind <- ifelse(q %% s == 0, TRUE, FALSE) 
    result <- here(s[ind])
   return(result)
}