<div><span style="color:#0033ff;">Não consegui rodar esta função:</span><br />
> cumhaz.summ <- function(y, digits = 3){<br />
+ cond <- y$strata == levels(y$strata)[1]<br />
+ y$cumhaz.upper <- pmax(y$cumhaz + 1.96 * y$std.chaz,0)<br />
+ y$cumhaz.lower <- pmax(y$cumhaz - 1.96 * y$std.chaz,0)<br />
+ output <- list()<br />
+ for(i in seq_along(levels(y$strata))){<br />
+ cond <- y$strata == levels(y$strata)[i]<br />
+ output[[i]] <- round(data.frame(Time = y$time[cond],<br />
+ 'N risk' = y$n.risk[cond],<br />
+ 'N events' = y$n.event[cond],<br />
+ 'Cum Hazard' = y$cumhaz[cond],<br />
+ lower = y$cumhaz.lower[cond],<br />
+ upper = y$cumhaz.upper[cond]),digits)<br />
+ }<br />
+ names(output) <- levels(y$strata)<br />
+ output<br />
+ }<br />
> cumhaz.summ(y)<br />
Error in data.frame(Time = y$time[cond], `N risk` = y$n.risk[cond], `N events` = y$n.event[cond], : <br />
arguments imply differing number of rows: 3, 10<br />
Além disso: Warning messages:<br />
1: In y$cumhaz + 1.96 * y$std.chaz :<br />
comprimento do objeto maior não é múltiplo do comprimento do objeto menor<br />
2: In y$cumhaz - 1.96 * y$std.chaz :<br />
comprimento do objeto maior não é múltiplo do comprimento do objeto menor<br />
> <br />
</div>
<div dir="ltr">
<div class="gmail_default" style="font-family:monospace,monospace;font-size:large;color:#073763">Na verdade eu estou fuçando ainda como plot.survfit faz pq não esta escrito em qualquer lugar que eu tenha achado como essa função faz e a summary.survfit retorna o erro padrão. Mas como a duvida era como extrair o cumhaz... achei que poderia postar. Se voce souber como a função plot faz posta aí que eu acerto. </div>
<div class="gmail_default" style="font-family:monospace,monospace;font-size:large;color:#073763"> </div>
<div>
<div class="gmail_signature" data-smartmail="gmail_signature" dir="ltr">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div dir="ltr"><font color="#000066" face="'courier new', monospace" size="4" style="background-color:rgb(255,255,255)">Pedro Brasil</font></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">Em sex., 10 de dez. de 2021 às 13:32, Cesar Rabak <<a xhref="/compose?to=cesar.rabak@gmail.com">cesar.rabak@gmail.com</a>> escreveu:</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">Esse cálculo dos limites superiores e inferiores do risco acumulado me parece estranho..
<div> </div>
<div>A formulação é baseada em alguma referência?</div>
<div> </div>
</div>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">On Fri, Dec 10, 2021 at 1:23 PM Pedro Emmanuel Alvarenga Americano do Brasil por (R-br) <<a xhref="/compose?to=r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a>> wrote:</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div class="gmail_default" style="font-family:monospace,monospace;color:rgb(7,55,99)">> fit <- survfit(Surv(time, status) ~ x, data = aml)<br />
> y <- summary(fit, times = c(14,28,35))<br />
> y<br />
Call: survfit(formula = Surv(time, status) ~ x, data = aml)<br />
<br />
x=Maintained<br />
time n.risk n.event survival std.err lower 95% CI upper 95% CI<br />
14 8 2 0.818 0.116 0.619 1.000<br />
28 6 2 0.614 0.153 0.377 0.999<br />
35 3 2 0.368 0.163 0.155 0.875<br />
<br />
x=Nonmaintained<br />
time n.risk n.event survival std.err lower 95% CI upper 95% CI<br />
14 7 5 0.583 0.142 0.3616 0.941<br />
28 4 2 0.389 0.147 0.1854 0.816<br />
35 2 2 0.194 0.122 0.0569 0.664<br />
<br />
> cumhaz.summ <- function(y, digits = 3){<br />
+ cond <- y$strata == levels(y$strata)[1]<br />
+ y$cumhaz.upper <- pmax(y$cumhaz + 1.96 * y$std.chaz,0)<br />
+ y$cumhaz.lower <- pmax(y$cumhaz - 1.96 * y$std.chaz,0)<br />
+ output <- list()<br />
+ for(i in seq_along(levels(y$strata))){<br />
+ cond <- y$strata == levels(y$strata)[i]<br />
+ output[[i]] <- round(data.frame(Time = y$time[cond],<br />
+ 'N risk' = y$n.risk[cond],<br />
+ 'N events' = y$n.event[cond],<br />
+ 'Cum Hazard' = y$cumhaz[cond],<br />
+ lower = y$cumhaz.lower[cond],<br />
+ upper = y$cumhaz.upper[cond]),digits)<br />
+ }<br />
+ names(output) <- levels(y$strata)<br />
+ output<br />
+ }<br />
> cumhaz.summ(y)<br />
$`x=Maintained`<br />
Time N.risk N.events Cum.Hazard lower upper<br />
1 14 8 2 0.191 0.000 0.456<br />
2 28 6 2 0.459 0.002 0.915<br />
3 35 3 2 0.909 0.133 1.685<br />
<br />
$`x=Nonmaintained`<br />
Time N.risk N.events Cum.Hazard lower upper<br />
1 14 7 5 0.492 0.056 0.928<br />
2 28 4 2 0.858 0.187 1.530<br />
3 35 2 2 1.442 0.385 2.499<br />
<br />
> </div>
</div>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">Em qui., 9 de dez. de 2021 às 10:43, Cid Póvoas por (R-br) <<a xhref="/compose?to=r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a>> escreveu:</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">library(survival)<br />
library(broom)<br />
library(tidyverse)<br />
<br />
fit <- survfit(Surv(time, status) ~ x, data = aml)<br />
df<-tidy(fit)<br />
df$cumhaz <- fit$cumhaz<br />
df %>% filter(time%in%c(9,8,28,33,48))<br />
<br />
fit1 <- summary(fit, times = c(14,28,35))<br />
fit1<br />
<br />
tab <- data.frame(time = fit1$time,<br />
n.risk = fit1$n.risk,<br />
n.event = fit1$n.event,<br />
survival = fit1$surv,<br />
std.err = fit1$std.err,<br />
`lower 95% CI` = fit1$lower,<br />
`upper 95% CI` = fit1$upper,<br />
cumhaz = fit1$cumhaz,<br />
strata = fit1$strata)<br />
<br />
tab
<div>
<div dir="ltr">
<div dir="ltr">
<div style="text-align:left"> </div>
<div style="text-align:center">
<div style="text-align:left"><font color="#073763"><b><i>Cid Edson Mendonça Póvoas</i></b></font></div>
<div style="text-align:left"> </div>
<div style="text-align:left"><b style="font-size:12.8px;color:rgb(7,55,99)"><i><a xhref="http://www.anovagro.com/">AnovAgro</a></i></b></div>
<div style="text-align:left"><b><i><font color="#073763">Engenheiro Agrônomo - </font></i></b><i style="color:rgb(7,55,99)"><b>Data Scientist</b></i><b><i><font color="#073763"> </font></i></b></div>
<div>
<div style="text-align:left"><i style="color:rgb(7,55,99)"><b>CREA :</b> 051984991-4</i></div>
<div style="text-align:left"><b><font color="#073763"><i>Técnico em Segurança do Trabalho </i></font></b></div>
<div style="text-align:left"><i style="color:rgb(7,55,99)"><b>Nº: </b></i><span style="text-align:center"><font color="#073763"><i>0012669/BA</i></font></span></div>
<div style="text-align:left"><i style="color:rgb(7,55,99)"><b>Tel: </b>+55 73 99151-9565</i></div>
<div style="text-align:left"><font color="#073763"><span style="font-size:12.8px"><b>Lattes : </b></span><span style="font-size:12.8px"><a xhref="http://lattes.cnpq.br/2303498368142537">http://lattes.cnpq.br/2303498368142537</a></span></font></div>
</div>
<div>
<div>
<div style="text-align:left"><span style="font-size:12.8px"><font color="#073763"><b>LinkedIn :</b> <a xhref="http://br.linkedin.com/in/cidedson/">http://br.linkedin.com/in/cidedson/</a></font></span></div>
<div style="text-align:left"><font color="#073763"><b>Whatsapp :</b> <a xhref="https://wa.me/5573991519565">https://wa.me/5573991519565</a></font></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">Em qui., 9 de dez. de 2021 às 09:26, Pedro Emmanuel Alvarenga Americano do Brasil por (R-br) <<a xhref="/compose?to=r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a>> escreveu:</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="auto">Ei Cesar,
<div dir="auto"> </div>
<div dir="auto">Ei sei que o cumhaz esta la. Eu so queria uma saida parecida com a do survival. Parece que vou ter que montar uma um esquema aqui pegar esses valores e montar uma tabela de saida. </div>
<div dir="auto"> </div>
<div dir="auto">Valeu. <br />
<div dir="auto">Pedro Emmanuel Brasil<br />
(:)=</div>
</div>
</div>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">Em qua, 8 de dez de 2021 20:42, Cesar Rabak <<a xhref="/compose?to=cesar.rabak@gmail.com">cesar.rabak@gmail.com</a>> escreveu:</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div><font face="arial, sans-serif">Isto não é suficiente?</font></div>
<div> </div>
<font face="monospace">> fit$cumhaz<br />
[1] 0.09090909 0.19090909 0.31590909 0.45876623 0.45876623 0.65876623<br />
[7] 0.90876623 0.90876623 1.40876623 1.40876623 0.16666667 0.36666667<br />
[13] 0.49166667 0.49166667 0.65833333 0.85833333 1.10833333 1.44166667<br />
[19] 1.94166667 2.94166667<br />
></font>
<div><font face="arial, sans-serif">HTH</font></div>
<div><font face="arial, sans-serif">--</font></div>
<div><font face="arial, sans-serif">Cesar Rabak</font></div>
</div>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">On Wed, Dec 8, 2021 at 5:12 PM Pedro Emmanuel Alvarenga Americano do Brasil por (R-br) <<a rel="noreferrer" xhref="/compose?to=r-br@listas.c3sl.ufpr.br">r-br@listas.c3sl.ufpr.br</a>> wrote:</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr">
<div class="gmail_default" style="font-family:monospace,monospace;font-size:large;color:rgb(7,55,99)">Saudações amigos do R, </div>
<div class="gmail_default" style="font-family:monospace,monospace;font-size:large;color:rgb(7,55,99)"> </div>
<div class="gmail_default" style="font-family:monospace,monospace;font-size:large;color:rgb(7,55,99)">Estou as voltas de estimar taxas de eventos e estou batendo cabeça. Antes de escrever uma função eu mesmo para fazer uma tabela com alguns valores gostaria de uma luz dos amigos de R.</div>
<div class="gmail_default" style="font-family:monospace,monospace;font-size:large;color:rgb(7,55,99)"> </div>
<div class="gmail_default" style="font-family:monospace,monospace;font-size:large;color:rgb(7,55,99)">O banco aml está no pacote survival então bastaria carregar o pacote pra reproduzir o exemplo. Eu gostaria de ver em formato de tabela alguns momentos específicos da tabela de sobrevivência. Só que o summary.survfit só retorna a sobrevivência e não a taxa cumulativa. </div>
<div class="gmail_default" style="font-family:monospace,monospace;font-size:large;color:rgb(7,55,99)"> </div>
<span class="gmail_default" style="color:rgb(7,55,99)"><font face="monospace" size="1">library("survival")</font></span>
<div> <font face="monospace" size="1">fit <- survfit(Surv(time, status) ~ x, data = aml)<br />
> fit<br />
Call: survfit(formula = Surv(time, status) ~ x, data = aml)<br />
<br />
n events median 0.95LCL 0.95UCL<br />
x=Maintained 11 7 31 18 NA<br />
x=Nonmaintained 12 11 23 8 NA<br />
<span class="gmail_default" style="font-family:monospace,monospace;font-size:large;color:rgb(7,55,99)"># Summary com todos os momentos de eventos</span></font></div>
<div><font face="monospace" size="1">> summary(fit)<br />
Call: survfit(formula = Surv(time, status) ~ x, data = aml)<br />
<br />
x=Maintained<br />
time n.risk n.event survival std.err lower 95% CI upper 95% CI<br />
9 11 1 0.909 0.0867 0.7541 1.000<br />
13 10 1 0.818 0.1163 0.6192 1.000<br />
18 8 1 0.716 0.1397 0.4884 1.000<br />
23 7 1 0.614 0.1526 0.3769 0.999<br />
31 5 1 0.491 0.1642 0.2549 0.946<br />
34 4 1 0.368 0.1627 0.1549 0.875<br />
48 2 1 0.184 0.1535 0.0359 0.944<br />
<br />
x=Nonmaintained<br />
time n.risk n.event survival std.err lower 95% CI upper 95% CI<br />
5 12 2 0.8333 0.1076 0.6470 1.000<br />
8 10 2 0.6667 0.1361 0.4468 0.995<br />
12 8 1 0.5833 0.1423 0.3616 0.941<br />
23 6 1 0.4861 0.1481 0.2675 0.883<br />
27 5 1 0.3889 0.1470 0.1854 0.816<br />
30 4 1 0.2917 0.1387 0.1148 0.741<br />
33 3 1 0.1944 0.1219 0.0569 0.664<br />
43 2 1 0.0972 0.0919 0.0153 0.620<br />
45 1 1 0.0000 NaN NA NA<br />
<br />
<span class="gmail_default" style="font-family:monospace,monospace;font-size:large;color:rgb(7,55,99)"># Summary com os momentos desejados</span><br />
> summary(fit, times = c(14,28,35))<br />
Call: survfit(formula = Surv(time, status) ~ x, data = aml)<br />
<br />
x=Maintained<br />
time n.risk n.event survival std.err lower 95% CI upper 95% CI<br />
14 8 2 0.818 0.116 0.619 1.000<br />
28 6 2 0.614 0.153 0.377 0.999<br />
35 3 2 0.368 0.163 0.155 0.875<br />
<br />
x=Nonmaintained<br />
time n.risk n.event survival std.err lower 95% CI upper 95% CI<br />
14 7 5 0.583 0.142 0.3616 0.941<br />
28 4 2 0.389 0.147 0.1854 0.816<br />
35 2 2 0.194 0.122 0.0569 0.664</font><br />
<br />
<span style="font-family:monospace;font-size:x-small">> plot(fit)</span></div>
<div><font face="monospace" size="1">> plot(fit, cumhaz = T) </font>
<div class="gmail_default" style="font-family:monospace,monospace;font-size:large;color:rgb(7,55,99)"><span style="font-family:Arial,Helvetica,sans-serif;font-size:small;color:rgb(34,34,34)">></span> </div>
<div class="gmail_default" style="font-family:monospace,monospace;font-size:large;color:rgb(7,55,99)">Reparem que há uma opção para o gráfico cumhaz = T, o que significa que o cumhaz está depositado no objeto, inclusive dentro do summary também. Tipo summary(fit)$cumhaz. Só que não há uma opção summary(fit, cumhaz = T) que retorne o cumhaz ao invés da sobrevivência. Alguém tem algum bizu pra fazer isso organizado, extrair a mesma tabela só que com o cumhaz, como <span style="color:rgb(34,34,34);font-family:monospace;font-size:x-small">summary(fit, times = c(14,28,35)) </span>sem muito trabalho? </div>
<div class="gmail_default" style="font-family:monospace,monospace;font-size:large;color:rgb(7,55,99)"> </div>
<div class="gmail_default" style="font-family:monospace,monospace;font-size:large;color:rgb(7,55,99)">Abraço forte,</div>
<div>
<div dir="ltr">
<div dir="ltr">
<div>
<div dir="ltr">
<div>
<div dir="ltr">
<div dir="ltr"><font color="#000066" face="'courier new', monospace" size="4" style="background-color:rgb(255,255,255)">Pedro Brasil</font></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
_______________________________________________<br />
R-br mailing list<br />
<a rel="noreferrer" xhref="/compose?to=R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br />
<a rel="noreferrer noreferrer" xhref="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br />
Leia o guia de postagem (<a rel="noreferrer noreferrer" xhref="http://www.leg.ufpr.br/r-br-guia">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.</blockquote>
</div>
</blockquote>
</div>
_______________________________________________<br />
R-br mailing list<br />
<a xhref="/compose?to=R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br />
<a rel="noreferrer" xhref="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br />
Leia o guia de postagem (<a rel="noreferrer" xhref="http://www.leg.ufpr.br/r-br-guia">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.</blockquote>
</div>
_______________________________________________<br />
R-br mailing list<br />
<a xhref="/compose?to=R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br />
<a rel="noreferrer" xhref="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br />
Leia o guia de postagem (<a rel="noreferrer" xhref="http://www.leg.ufpr.br/r-br-guia">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.</blockquote>
</div>
_______________________________________________<br />
R-br mailing list<br />
<a xhref="/compose?to=R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br />
<a rel="noreferrer" xhref="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br />
Leia o guia de postagem (<a rel="noreferrer" xhref="http://www.leg.ufpr.br/r-br-guia">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.</blockquote>
</div>
</blockquote>
</div>
_______________________________________________<br />
R-br mailing list<br />
R-br@listas.c3sl.ufpr.br<br />
<a xhref="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br />
Leia o guia de postagem (<a xhref="http://www.leg.ufpr.br/r-br-guia">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.