【发布时间】:2022-01-06 21:31:44
【问题描述】:
我写了以下函数:
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)
}
当我提供长度为 1 的参数时它工作正常,但我希望该函数将长度 >1 的向量作为输入并返回相同长度的向量。
我想做的例子:
vector_pvals = c(0.1, 0.05, 0.001, 0.0001)
asteriks(vector_pvals)
输出应该是这样的字符向量:
[1] "NS" "*" "***" "****"
当然,我可以通过在for-loop 中使用该函数来实现这一点,但我实际上想在dplyr 管道中使用它,所以能够只提供一个完整的向量就好了.答案是在函数中使用for-loop 来一次处理每个元素,还是有更简单的方法?
【问题讨论】:
标签: r function vectorization