[英]Run Power.t.test for a data frame
我正在嘗試在數據幀上運行power.t.test
,並嘗試為每個員工返回samplesize(n),但這給了我這個錯誤。
power.t.test中的誤差(delta = df $ Delta,sd = df $ sd,sig.level = 0.05,:正好是'n','delta','sd','power'和'sig。級別”必須為NULL
到目前為止,這是我所做的。
dput(d.f)
structure(list(power = c(0.95, 0.95, 0.95, 0.95), sig.level = c(0.05,
0.05, 0.05, 0.05), sd = c(4.93255160738102, 20.3907509926899,
23.1325373816684, 6.0463892968789), delta = c(97, 97, 90, 96),
workedby = structure(1:4, .Label = c("emp1", "emp2", "emp3",
"emp4"), class = "factor"), newcolumn = c(0, 0, 0, 0)), .Names = c("power",
"sig.level", "sd", "delta", "workedby", "newcolumn"), row.names = c(NA,
-4L), class = "data.frame")
第一種方法
d.f$newcolumn <- 0
for (i in 1:nrow(d.f)) {
n <- power.t.test(delta = d.f$delta, sd = d.f$sd, sig.level=.05, power = .8, type = "one.sample")
d.f$newcolumn[i] <- n
}
head(d.f)
第二種方法:
apply(d.f[,c('power','sig.level','sd','delta')], 1, function(x) power.t.test(x) )
有人可以告訴我我在做什么錯。 基本上,我希望為每個雇員返回SampleSize。
它以單個值作為輸入,而不是數據幀。 以下作品:
power.t.test(delta=d.f$delta[1], sig.level=d.f$sig.level[1], power=d.f$power[1], sd=d.f$sd[1])
您將需要將其包裝成一個循環,然后將其重新分配給“新列”中的正確行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.