2011-08-05 33 views
-1

請這可怎麼R中什麼是SAS-parameterestimates在R上的等價

proc glm data=DataTX; 
class DAG; 
by HID; 
model Bwt = DAG/ss3 solution; 
ods output parameterestimates =TX_BW_corrFact; 

運行寫的;

+1

它是做什麼用的?而且你應該在stats.stackexchange.com上提問這種問題。 – Spacedman

+0

如果你告訴我們你的代碼做了什麼,並且還提供了示例數據和預期結果,那麼你將會有更多的運氣來獲得這個答案。 – Andrie

回答

1

對於R中的大多數用途,相當於proc glmlm,它符合線性模型。看起來您需要模型的估計係數,可通過coef(mod)獲得,其中modlm返回的對象。

最複雜的位是複製by語句,該語句適用於by變量(本例中爲HID)的每個級別的單獨模型。嘗試這樣的事情。我假設你已經有了你的數據集導入R.

grps <- split(DataTX, DataTX$HID) 
mods <- lapply(grps, function(x) lm(Bwt ~ DAG, data=x)) 
sapply(mods, coef) 

這種分裂DataTX到基於HID單獨組。對於每個組,然後適合型號lm(Bwt ~ DAG)。最後一行然後提取每個模型的擬合係數。

這可以連接成一行,但將其作爲3個單獨的語句可能會使得更容易遵循。

請注意,由於兩個系統如何參數化模型的差異,係數將不會與SAS中的係數相同。特別是,SAS默認將類/因子變量的最後一級作爲參考,而R使用第一級。

+0

嗨Hong Ooi,你的腳本只給我一個DAG的估計,但DAG有不同的級別,我怎麼能得到DAG每個級別的單獨估計。謝謝 – nolyugo

+0

讓我猜測,DAG是數字?然後,lm將它視爲一個連續變量。用'DataTX $ DAG < - 因子(DataTX $ DAG)'將它變成一個因子(相當於SAS類var)並重新運行。 –

1

看一看lmList()從lme4或NLME包

library(lme4) 
lmList(Reaction ~ Days | Subject, sleepstudy) 

這比香港的解決方案短。

grps <- split(sleepstudy, sleepstudy$Subject) 
mods <- lapply(grps, function(x) lm(Reaction ~ Days, data=x)) 
sapply(mods, coef) 
相關問題