【发布时间】:2018-08-19 21:57:44
【问题描述】:
我有一个数据集,其中每一行都包含 combinevar 函数所需的数据(package = fishmethods;combinevar 结合来自两个分布的信息以得出组合方差)。
xbar1 = c(2,2,1,4,3)
xbar2 = c(0,0,0,0,0)
var1 = c(0,1,3,2,1)
var2 = c(0,0,0,0,0)
n1 = c(50,10,30,40,50)
n2 = c(3,4,50,32,20)
df <- data.frame(xbar1, xbar2, var1, var2, n1, n2)
xbar1 xbar2 var1 var2 n1 n2
2 0 0 0 50 3
2 0 1 0 10 4
1 0 3 0 30 50
4 0 2 0 40 32
3 0 1 0 50 20
我将如何跨行应用该函数。我可以在这样的 for 循环中做到这一点:
for (i in 1:nrow(df)) {
combined_var <- combinevar(xbar = c(df$xbar1[i], df$xbar2[i]),
s_squared = c(df$var1[i], df$var2[i]),
n = c(df$n1[i], df$n2[i]))[2]
print(combined_var)
}
[1] 0.2177068
[1] 1.571429
[1] 1.338608
[1] 5.104851
[1] 2.573499
但我确信有更好的方法。我想我可能可以用 apply 函数来做到这一点,但我不知道怎么做。
【问题讨论】: