2017-08-22 3 views
0

Je trace une courbe de survie par ggsurvplot(), pour transformer les jours en années que j'utilise comme argument xscale="d_y". J'ai aussi essayé xscale=365.25 comme suggéré par la documentation.Courbe de survie numérique ou valeur de caractère spécifiant l'échelle de l'axe des x

Le problème est que l'axe temporel est automatiquement étiqueté mais pas comme je m'y attendais à 1 an, 2, 3 ...

Au lieu de cela je reçois 0.55, 1.1, et ainsi de suite. Comment puis-je étiqueter exactement à chaque année ronde?

Trouver le code ci-dessous

install.packages('survMisc') 
library("survminer") 
time <- sample(200:500, 20, replace=T) 
status <-sample(0:1, 20, replace=T) 
group<-c(rep("A", 10), rep("B", 10)) 
df<-data.frame (time, status, group) 
fit2 <- survfit(Surv(time, status) ~ group,data = df) 
ggsurvplot(fit2, xscale="d_y") 
+0

Peut-être que vous pouvez utiliser 'scale_x_continuous' –

+0

Il n'est pas une option dans' ggsurvplot() '' Si – Al14

+0

ggsurvplot() 'est basez pas R, s'il vous plaît préciser le' package'. –

Répondre

2

Vos données time ne va pas plus de 1,34 ans. Mais ajoutez break.x.by=365 et vous aurez l'échelle que vous voulez.

install.packages('survMisc') 
library("survminer") 
time <- sample(200:500, 20, replace=T) 
status <-sample(0:1, 20, replace=T) 
group<-c(rep("A", 10), rep("B", 10)) 
df<-data.frame (time, status, group) 
fit2 <- survfit(Surv(time, status) ~ group,data = df) 
ggsurvplot(fit2, xscale="d_y", break.x.by=365)