Ошибка в forestplot.default R
Я пытаюсь сделать лесной участок в R.
Пример, предоставленный этим сайтом: https://designdatadecisions.wordpress.com/2016/07/02/forest-plot-with-horizontal-bands/
Начиная с чтения данных в R.
Форматирование, чтобы метки столбцов и столбцы совпадали
subgps <- c(4,5,8,9,12,13,16,17,20,21,24,25,28,29,32,33)
data$Variable[subgps] <- paste(" ",data$Variable[subgps])
np <- ifelse(!is.na(data$Count), paste(data$Count," (",data$Percent,")",sep=""), NA)
tabletext <- cbind(c("Subgroup","\n",data$Variable),
c("No. of Patients (%)","\n",np),
c("4-Yr Cum. Event Rate\n PCI","\n",data$PCI.Group),
c("4-Yr Cum. Event Rate\n Medical Therapy","\n",data$Medical.Therapy.Group),
c("P Value","\n",data$P.Value))
Пока без ошибок.
После того, как я пытаюсь сделать второй шаг, появляется ошибка. Второй шаг заключается в следующем:
library(forestplot)
png(file.path(workdir,"Figures\\Forestplot.png"),width=960, height=640)
forestplot(labeltext=tabletext, graph.pos=3,
mean=c(NA,NA,data$Point.Estimate),
lower=c(NA,NA,data$Low), upper=c(NA,NA,data$High),
title="Hazard Ratio",
xlab=" <---PCI Better--- ---Medical Therapy Better--->",
hrzl_lines=list("3" = gpar(lwd=1, col="#99999922"),
"7" = gpar(lwd=60, lineend="butt", columns=c(2:6), col="#99999922"),
"15" = gpar(lwd=60, lineend="butt", columns=c(2:6), col="#99999922"),
"23" = gpar(lwd=60, lineend="butt", columns=c(2:6), col="#99999922"),
"31" = gpar(lwd=60, lineend="butt", columns=c(2:6), col="#99999922")),
txt_gp=fpTxtGp(label=gpar(cex=1.25),
ticks=gpar(cex=1.1),
xlab=gpar(cex = 1.2),
title=gpar(cex = 1.2)),
col=fpColors(box="black", lines="black", zero = "gray50"),
zero=1, cex=0.9, lineheight = "auto", boxsize=0.5, colgap=unit(6,"mm"),
lwd.ci=2, ci.vertices=TRUE, ci.vertices.height = 0.4)
dev.off()
Ошибка:
Ошибка в forestplot.default(labeltext = tabletext, graph.pos = 3, mean = c(NA,: вы предоставили 2 строки в среднем аргументе, в то время как метки имеют 34 строки
Что это вообще значит? Как это решить?
Заранее спасибо! ~Kweet
1 ответ
Это означает, что это говорит. Из документации на лесной участок:
означают: вектор или матрицу со средними значениями. Вы также можете предоставить 2D/3D матрицу, которая автоматически преобразуется в нижний / верхний параметры.
Ты проверил data
чтобы убедиться, что вы импортировали его правильно? Если вы скачали его по ссылке в блоге, это файл.xlsx.
что вы видите, например, когда вы пытаетесь data$Point.Estimate
?
Если это NULL (я подозреваю, что это так), попробуйте загрузить его с openxlsx
пакет:
install.packages("openxlsx")
library(openxlsx)
data <- read.xlsx("ForestPlotData.csv")
# Presuming you downloaded the file correctly from the url, and its
# in your working directory, and titled "ForestPlotData.csv"