2012-08-09 51 views
0

我做coxph我的數據並獲得結果是這樣的:如何保存列表對象中的R

> z 
Call: 
coxph(formula = Surv(Years, Event) ~ y, data = x) 


    coef exp(coef) se(coef)  z p 
y 0.0714  1.07 0.288 0.248 0.8 


Likelihood ratio test=0.06 on 1 df, p=0.804 n= 65, number of events= 49 

我只想

y 0.0714  1.07 0.288 0.248 0.8 

保存到文件中。因爲我做排列並生成1000 z。

我想將它們保存到一個文本文件中是這樣的:

 
fin -0.3794 0.684 0.1914 -1.983 0.0470 
age -0.0574 0.944 0.0220 -2.611 0.0090 
race 0.3139 1.369 0.3080 1.019 0.3100 
wexp -0.1498 0.861 0.2122 -0.706 0.4800 
mar -0.4337 0.648 0.3819 -1.136 0.2600 
paro -0.0849 0.919 0.1958 -0.434 0.6600 

任何人都可以幫助嗎?

謝謝!

回答

1

係數很容易被

summary(z)[['coefficients']] 

和置信區間的信息訪問由

summary(z)[['conf.int']] 

要找出一個summary.coxph對象的組件

str(summary(z)) 

我的建議要創建一個你的排列列表

data_list <- list(data_1, ...., data_1000) 

然後調用

lots_models <- lapply(data_list, coxph, formula = Surv(Years, Event) ~ y) 

它創建模型列表

您可以通過

lots_summaries <- lapply(lots_models, summary) 

創建摘要提取係數

all_coefficients <- lapply(lots_summaries, '[[', 'coefficients') 
all_conf.int  <- lapply(lots_summaries, '[[', 'conf.int') 

添加置換id列(如果你想)

all_coefs_id <- lapply(seq_along(data_list), 
    function(i) cbind(all_coefficients[[i]],i)) 
all_ci_id <- lapply(seq_along(data_list), 
    function(i) cbind(all_conf.int[[i]],i)) 

然後合併成一個data.frame

all_coefs_df <- do.call(rbind, all_coefs_id) 
all_ci_df <- do.call(rbind, all_ci_id) 

你比然後保存爲文本文件

+0

非常感謝。 如果我還想保存

 exp(coef) exp(-coef) lower .95 upper .95 y 1.074 0.9311 0.6105 1.889 
。我怎樣才能保存它。 – user1586241 2012-08-09 02:44:01

+0

我的意思是當我使用summary(z)時,我可以得到兩個信息:coef exp(coef)se(coef)z Pr(> | z |)y 0.07137 1.07398 0.28817 0.248 0.804 exp(coef)exp(-coef)低95上955 1.074 0.9311 0.6105 1.889總結(z)[['係數']]可以保存第一個,但我也想保存第二個。謝謝! – user1586241 2012-08-09 03:01:46

+0

啊,是的。你想'conf.int'我編輯了答案 – mnel 2012-08-09 03:14:48