прымушаць множны выхад у новым dataframe з дапамогай ddply

У мяне ёсць гэтая функцыя:

> λ.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])
            }

якія адпавядаюць размеркаванні і Retuns ацэнкі параметру, зОму. памылка, значэнне г і р для маёй мадэлі. Я павінен прымяніць гэтую функцыю для розных падмноства майго зыходнага кадра дадзеных памер пэўнай камбінацыяй фактару сажалка, асяроддзе пражывання, лячэнне, дата , і зрабіць гэта я выкарыстоўваючы ddply функцыі:

> mle.λ <- ddply(size, .(pond,habitat,treatment,date), 
     summarise, λ=λ.est(x=mass.wei))

праблема заключаецца ў тым, што, робячы гэта, я магу дадаць толькі адзін слупок час для новага кадра дадзеных mle.λ , wereas мне трэба дадаць у mle.λ чатыры новыя слупкі, па адным для кожнага з выхадаў λ.est у асноўным тое, што выглядае наступным чынам:

>  mle.λ
      pond habitat treatment date estimate std. error z value Pr(z)
       -    -        -       -      -        -         -      - 
       -    -        -       -      -        -         -      - 
       -    -        -       -      -        -         -      - 
       -    -        -       -      -        -         -      - 
       -    -        -       -      -        -         -      - 
      ...

Да гэтага часу я пісаў іншую функцыю для кожнага выхаду неабходны, але я хацеў бы зрабіць некаторую коду эканомікі ... ці ёсць спосаб, каб зрабіць усё гэта за адзін раз?

дзякуй Matteo

5

1 адказы

Так як у вас ужо ёсць выніковая функцыя, вам не трэба дадаткова выкарыстаць рэферыраванне функцыю. Акрамя таго, з'яўляецца можна вярнуць больш аднаго выхаду адначасова. Паколькі няма ніводнага прыкладу дадзеных, вось адзін, які павінен выразна прадэманстраваць, як гэта зрабіць:

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
5
дададзена
Выдатна! Я рады, што гэта дапамагло.
дададзена аўтар John Colby, крыніца
сапраўды appriciated Джон, як заўсёды шмат прасцей, чым я, хоць ... усё роўна прыйдзецца ісці шмат на R маршрут ..
дададзена аўтар matteo, крыніца