【问题标题】:How to Assign Values to a Vector Based on a Logical Expression in R如何根据 R 中的逻辑表达式为向量赋值
【发布时间】:2016-02-19 20:48:53
【问题描述】:

我正在尝试编写以下函数:

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)
    }
  }
}

但是,在我有“here”的地方,我希望 s 的值满足上面“if”语句指定的标准,以便我可以对其执行操作(取最大值和最小值,以及诸如此类),即形式的向量:

v

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

【问题讨论】:

    标签: r function vector


    【解决方案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)
    }
    

    【讨论】:

    • 做到了!谢谢。
    猜你喜欢
    • 1970-01-01
    • 2018-06-15
    • 2021-07-26
    • 1970-01-01
    • 1970-01-01
    • 2023-02-11
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多