0
我必须在R中编写一个样本比例Z测试函数。我需要将样本比例作为第一个因子级别中数据的比例。 例如,在R中提取行和列
data <- factor(c(NA, rep("a", 60), rep("b", 40)))
table(data)
a b
60 40
而我需要的样本比例为60/100。这里是我的代码的一部分,它在mtab <- addmargins(table(data))
返回一个错误,说出乎意料的符号。
hyp_test <- function(data, hyp_val=NULL, alpha, alternative="two-sided",graph=FALSE) {
n <- sum(!is.na(data))
ifelse(is.factor(data),
mtab <- addmargins(table(data))
phat <- mtab[1]/mtab[3]
qhat <- 1 - phat
if(length(hyp_val) > 0) {
q <- 1-hyp_val
SE.phat <- sqrt((hyp_val*q)/n)
ts.z <- (phat - hyp_val)/SE.phat
p.val <- pnorm(ts.z)*2
if(alternative=="less") {
p.val <- pnorm(ts.z)
}
if(alternative=="greater") {
p.val <- 1 - p.val
}
}
任何帮助将不胜感激。我需要基本了解如何找到样本比例。
表(数据)显示1×2表 –
通常,[最小](http://stackoverflow.com/help/mcve)和[可再现的(http://stackoverflow.com/questions/5963269/如何使一个伟大的可重现的例子)代码非常有帮助和赞赏。在这种情况下,尽管你提供了代码,但它是不完整的(你的'ifelse'挂起来......)。你的错误是因为这个。也许阅读'?ifelse'会帮助你看到一个问题? – r2evans