提问人:Samuel Priestley 提问时间:7/16/2023 更新时间:7/16/2023 访问量:58
如何使函数成为自定义函数的参数?
How to make a function an argument for a custom made function?
问:
我创建了一个函数,用于在具有统计显著性的值旁边添加显著性星号。我之所以创建这个函数,是因为我正在为不同的测试统计量创建表。我想用这段代码做的是在自定义函数中创建一个参数,该参数将更改正在使用的测试统计信息。例如,我可能希望使用 fisher 精确检验而不是二项式检验,因此我想输入 test_star_loop(data=data, test = fisher.test) 来执行 Fisher 检验。有没有一种简单的方法可以在不使用 if 和 else 语句的情况下做到这一点?
这是我写的代码。它创建了我想要的二项式检验的星星,但我不确定如何制作它,以便我可以将其应用于不同的测试统计量。
test_star_loop <- function(data){
# convert table to dataframe
data <- do.call(rbind.data.frame, data)
# vector to store stars for each column in
stars <- rep("", ncol(data))
# iteratre over each column
for (col in seq_along(data)) {
# do binomial test on top row
# number of times subjects avoid =ed information
n_success <- round((data[1, col]/100)*data[2, col], 0)
binom_result <- binom.test(x = n_success, n = data[2, col], p = 0)
# check if p-value < 0.01
if (binom_result$p.value < 0.01) {
stars[col] <- "***"
}
# check if p-value < 0.05
else if (binom_result$p.value < 0.05) {
stars[col] <- "**"
}
}
答: 暂无答案
评论
test=fisher.test
fisher.test(x, alternative="greater")
test(x, alternative="greater")
test
fisher.test
test
vector("character", n)
rep("", n)