今天繪制森林圖遇到了這樣一個(gè)報(bào)錯(cuò):
> p <- ggforest(model = res.cox, data = df.surv,
+ cpositions = c(0.01, 0.1, 0.3),
+ # refLabel = "女",
+ fontsize = 0.7,
+ noDigits = 2,
+ main = "Hazard Ratio")
錯(cuò)誤于match.names(clabs, names(xi)): 名稱同原來(lái)已有的名稱不相對(duì)
不知道是哪里出了問(wèn)題。找了一圈沒(méi)找到原因。
最后無(wú)意中發(fā)現(xiàn)是因?yàn)閭魅氲膁ata參數(shù)的格式要求。
原本的表格預(yù)處理流程:
df.surv <- df.cli %>% inner_join(df.IT,by = 'patient') %>%
inner_join(df.1mm,by = 'patient') %>%
mutate(SEX = ifelse(SEX=='男','Male','Female')) %>%
mutate(SEX = factor(SEX, levels = c("Male", "Female")))
此時(shí)這個(gè)表格是一個(gè)tbl對(duì)象
> class(df.surv)
[1] "tbl_df" "tbl" "data.frame"
需要將其轉(zhuǎn)換為一個(gè)純粹的data.frame才可以
df.surv <- df.cli %>% inner_join(df.IT,by = 'patient') %>%
inner_join(df.1mm,by = 'patient') %>%
mutate(SEX = ifelse(SEX=='男','Male','Female')) %>%
mutate(SEX = factor(SEX, levels = c("Male", "Female"))) %>%
as.data.frame() # ←這里
此時(shí)
> class(df.surv)
[1] "data.frame"
再去繪圖就不報(bào)錯(cuò)了
> class(df.surv)
[1] "data.frame"
> p <- ggforest(model = res.cox, data = df.surv,
+ cpositions = c(0.01, 0.1, 0.3),
+ # refLabel = "女",
+ fontsize = 0.7,
+ noDigits = 2,
+ main = "Hazard Ratio")
> p