gpt4 book ai didi

r - 使用 ddply 在新数据帧中强制多个输出

转载 作者:行者123 更新时间:2023-12-04 19:17:15 25 4
gpt4 key购买 nike

我有这个功能:

> λ.est <- function(x){
mle.optim <- mle2(paretoNLL,start=list(λ=-0.7),data=list(x=x),trace=TRUE)
return(summary(mle.optim)@coef[1,1:4])
}

拟合分布并重新调整参数估计,std。我的模型的错误、z 值和 p。
我必须将此函数应用于原始数据框的不同子集 size由因子 pond,habitat,treatment,date 的组合定义,为此我使用了 ddply 函数:
> mle.λ <- ddply(size, .(pond,habitat,treatment,date), 
summarise, λ=λ.est(x=mass.wei))

问题是,通过这样做,我一次只能向新数据框添加一列 mle.λ , 我需要添加到 mle.λ 的区域四个新列,一个用于 λ.est 的每个输出
基本上是这样的:
>  mle.λ
pond habitat treatment date estimate std. error z value Pr(z)
- - - - - - - -
- - - - - - - -
- - - - - - - -
- - - - - - - -
- - - - - - - -
...

到目前为止,我一直在为每个需要的输出编写不同的函数,但我想做一些代码经济……有没有办法一次性完成所有工作?

谢谢
马特奥

最佳答案

由于您已经有一个汇总函数,因此您无需额外使用 summarise功能。此外,可以一次返回多个输出。由于没有示例数据,这里有一个应该清楚地演示如何执行此操作的数据:

n = 20
set.seed(12345)
data = data.frame(cbind(pond=1:2, habitat=1:3, value = rnorm(n)))

> ddply(data, .(habitat, pond), function(x) summary(x$value))
habitat pond Min. 1st Qu. Median Mean 3rd Qu. Max.
1 1 1 0.3706 0.5318 0.6078 0.6767 0.7528 1.1210
2 1 2 -0.9193 -0.6864 -0.4535 -0.1853 0.1817 0.8169
3 2 1 -0.8864 -0.5013 -0.1162 -0.1322 0.2448 0.6059
4 2 2 -0.2762 0.1550 0.4095 0.3131 0.5675 0.7095
5 3 1 -0.7505 -0.5173 -0.2842 -0.3813 -0.1967 -0.1093
6 3 2 -1.8180 -1.0750 -0.3316 -0.1107 0.7429 1.8170

关于r - 使用 ddply 在新数据帧中强制多个输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7930590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com