小编Ann*_*ick的帖子

在 R 中编写向量化函数

我写了以下函数:

asteriks = function(pvalue){
  if(pvalue > 0.05){
    output = "NS"
  }else if (pvalue <=0.05 & pvalue >0.01){
    output = "*"
  }else if (pvalue <=0.01 & pvalue >0.001){
    output = "**"
  }else if (pvalue <=0.001 & pvalue >0.0001){
    output = "***"
  }else if (pvalue <=0.0001){
    output = "****"
  }
  return(output)
}
Run Code Online (Sandbox Code Playgroud)

当我提供长度为 1 的参数时它工作正常,但我希望该函数将长度 >1 的向量作为输入并返回相同长度的向量。

我想做的例子:

vector_pvals = c(0.1, 0.05, 0.001, 0.0001)
asteriks(vector_pvals)
Run Code Online (Sandbox Code Playgroud)

输出应该是这样的字符向量:

[1] "NS" "*" "***" "****"
Run Code Online (Sandbox Code Playgroud)

当然,我可以通过在for循环中使用该函数来实现这一点,但我实际上想在dplyr管道中使用它,因此能够为其提供整个向量会很好。答案是for在函数中使用循环来一次处理每个元素,还是有更简单的方法?

r function vectorization

5
推荐指数
2
解决办法
103
查看次数

标签 统计

function ×1

r ×1

vectorization ×1