我写了以下函数:
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在函数中使用循环来一次处理每个元素,还是有更简单的方法?