我正在尝试复制关于生存建模的博客中的步骤:https://healthdatacounts.com/2019/12/03/reconstructing-data-from-kaplan-meier-curves/
我在R中使用带有函数“数字化”的包"survHE“。
当我运行附加的代码("Code_Guyot")时,当我试图运行“数字化”函数时,我得到一个错误信息:"Error in [.data.frame(pub.risk,,5):undefined columns selected“。
#Read survival data
Guyot_data <- read.csv("Guyot_data_2.csv", header = TRUE)
head(Guyot_data)
#Determine which rows the upper and lower values of each interval are
find_interval_limits <- function(start_time,
surv_time){
if (max(surv_time) > max(start_time))
stop("Intervals must span all survival times. Later interval missing.")
interval <- 1
end_time <- start_time[2]
upper <- NULL
for (i in seq_along(surv_time)){
if (surv_time[i] >= end_time) {
upper[interval] <- i - 1
interval <- interval + 1
end_time <- start_time[interval + 1]
}
}
cbind(lower = c(1, upper + 1),
upper = c(upper, length(surv_time)))
}
interval_limits <-
find_interval_limits(start_time = c(0, 10, 20, 30, 40, 50, 60),
surv_time = Guyot_data$Time)
#We can then add this extraction date-specific values to the numbers at risk data take `enter code here from a table in the paper
Guyot_atrisk <- read.csv("Guyot_atrisk.csv", header = TRUE)
Guyot_atrisk[, c("lower", "upper")] <- interval_limits
head(Guyot_atrisk)
# required row number
Guyot_data <- cbind("k" = rownames(Guyot_data), Guyot_data)
# The arguments of digitise are file names of text file so we need to save these data `enter code here`first
write.table(Guyot_atrisk, file = "Guyot_atrisk.txt", row.names = FALSE)
write.table(Guyot_data, file = "Guyot_data.txt", row.names = FALSE)
#my code
surv.inp <- "Guyot_data.txt"
nrisk.inp <- "Guyot_atrisk.txt"
km_out <- "KMdata.txt"
ipd_out <- "IPDdata.txt"
digitise(surv.inp, nrisk.inp)看起来我对包含有风险的患者数量的文件的上限和下限值有一些问题。
我做错什么了吗?错误在哪里?
在下面的链接中,您可以找到输入文件。
*.csv文件是我从Kaplan Meier图中提取生存数据的文件(我使用了来自"Guyot et al.BMC Medical Research Methodology 2012,12:9“的出版物中的放疗arm数据)。
在计算的最后阶段,*.txt文件是“数字化”功能的输入。
发布于 2021-02-17 02:55:29
您能否在survHE GitHub repo上打开一个问题-可能包括指向实际数据的链接,以便我可以复制该问题?(我有点忙得不可开交,相信你,我更愿意做这件事,而不是其他任何事情!,所以我可能不会马上做,但我可以试着看看它!)
https://stackoverflow.com/questions/66211855
复制相似问题