结合R中的功能

时间:2017-11-07 22:26:07

标签: r function

我正在完成一项任务,但我不知道如何组合2个函数,以便从一个函数中获得多个答案。我正在做测试并且不得不写出这个函数,然后我不得不写一个if-else循环来说明假设是否会被拒绝。它们都是单独工作但我无法弄清楚如何合并它们所以当我运行代码时,我得到一个数字答案和一条线,说明是否会拒绝hypotesis。对于数字答案,我得到了这个:

osuustesti <- function(x1,x2,n1,n2) {
    ((x1/n1)-(x2/n2))/sqrt((1/n1 + 1/n2)*((x1+x2)/(n1+n2))*(1-((x1+x2)/(n1+n2))))
}

对于说明将如何处理这些假设的线,我得到了这个:

osuustesti2 <- function(x1,x2,n1,n2,alpha) {
    if(abs(((x1/n1)-(x2/n2))/sqrt((1/n1 + 1/n2)*((x1+x2)/(n1+n2))*(1-((x1+x2)/(n1+n2)))))> qnorm(alpha/2,lower.tail=FALSE)) {
        cat("Nollahypoteesi hylätään")} else{cat("Nollahypoteesi hyväksytään")
    }
}

我不知道如何将它们组合成1,所以当我运行代码时,我得到数值和线......我试图复制这两个函数并添加它们和&amp;但那根本不起作用......

1 个答案:

答案 0 :(得分:1)

这样的事情应该有效:

osuustesti <- function(x1, x2, n1, n2, alpha = 0.05) {
    numer <- x1 / n1 - x2 / n2 
    denum <- sqrt((1 / n1 + 1 / n2) * 
                  ((x1 + x2) / ( n1 + n2)) * 
                  (1 - ( x1 + x2) / (n1 + n2)))
    result <- numer / denum

    if (result > qnorm(alpha / 2, lower.tail = FALSE)) {
        cat("Nollahypoteesi hylätään\n")
    } else {
        cat("Nollahypoteesi hyväksytään\n")
    }
    return(result)
}

我将结果保存到result对象,然后将其与alphacat字符串进行比较,最后使用return()返回函数的结果。