0

Imagine the following database. Made up data

K<- c(2,2.2,2.4,2.6,2.8,3,3.5,3.8,4,4.2,4.4,4.8,5,5.2,5.4,5.6,5.8,6)
event <- c(1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1)
t<- c(8,10,25,10,8,22,30,16,32,30,32,20,8,12,14,22,10,6)
df<- data.frame(K,event,t)

I split the variable K (potassium) into a categorical variable with 3 levels (< 3, >= 3 and <5, >=5)

df$K_cut <- cut(K, c(0,3,5,6.5), right = F)
levels(df$K_cut)  # [1] "[0,3)"   "[3,5)"   "[5,6.5)"

We perform a cox regression and represent it with ggforest The reference category is potassium < 3

fit3<- coxph(Surv(t,event) ~ K_cut, data=df)
fit3
library(survminer)
ggforest(fit3, data=df, fontsize=0.8)

enter image description here

We changed the reference category to be a normal potassium (3-5) And when plotting it is now the correct reference, but it is plotted on the first line.


df$K_cut <- relevel(df$K_cut, ref = "[3,5)")
fit4<- coxph(Surv(t,event) ~ K_cut, data=df)
fit4
library(survminer)
ggforest(fit4, data=df, fontsize=0.8)

enter image description here

I would like more to be able to put the reference category K 3-5 but for it to be on the center line, so that the graph represents from top to bottom, K < 3, between 3 and 5 and K >=5 The result shoud be (with paste, retouching the figure ...)

enter image description here

Is there a way to do it with ggforest or with another function/package Change the order of the rows and put the reference wherever you want ..

In addittion, can you change the spaces so that the intervals and N= ... are not so close together, or modify the name of the variable In the ggforest documentation, I have not seen that such options exist. Regards and thanks

1 Answers1

2

One option to achieve your desired result would be to relevel your factor after estimating your model and before calling ggforest:

library(survminer)
library(survival)

fit4 <- coxph(Surv(t, event) ~ K_cut, data = df)

df$K_cut <- factor(df$K_cut, levels = c("[0,3)", "[3,5)", "[5,6.5)"))

ggforest(fit4, data = df, fontsize = 0.8)

enter image description here

stefan
  • 90,330
  • 6
  • 25
  • 51