我正在尝试将以下内容传递给pwr.t.test
:
> twelve
fail sampsize sd
1 0.047619 21 0.9759
2 0.000000 28 0.0000
3 0.000000 1 0.0000
4 0.000000 13 0.0000
5 0.000000 1 0.0000
6 0.000000 1 0.0000
7 0.000000 1 0.0000
8 0.000000 1 0.0000
9 0.000000 5 0.0000
10 0.000000 7 0.0000
11 0.100000 20 1.3416
12 0.000000 1 0.0000
13 0.000000 2 0.0000
14 0.000000 9 0.0000
15 0.000000 10 0.0000
16 1.000000 3 0.0000
17 0.133333 30 1.8619
18 0.000000 1 0.0000
19 0.000000 6 0.0000
20 0.000000 11 0.0000
我想将fail/sample
作为pwr.t.test
的参数。
以下是我如何实现它无济于事:
powertest<-function(x,y)
{pwr.t.test(d=x/y,power=.8,sig.level=.05,type="one.sample",alternative="two.sided")}
twelvelist<-list(twelve$fail,twelve$sd)
mapply(powertest, twelvelist)
Error in x/y : 'y' is missing
我之前有lapply
的运气,但那只是使用了一个向量(而不是数据帧的两列)。
我知道ddply
或apply
家庭成员之一很容易做到这一点。
谢谢。
答案 0 :(得分:3)
Brocolli,试试:
with(twelve, mapply(powertest, fail, samplesize))
但是,鉴于你并不真的需要两个变量,但实际上只需要两个变量的比例,你可以轻松地做到:
with(twelve, sapply(fail / samplesize, pwr.t.test, power=.8, sig.level=.05, ...)) # replace ... with actual arguments
我没有测试过这个b / c我不知道你使用的功能来自哪里,所以你可能需要调整一下。