Я хотел бы превратить этот код в блестящее приложение, в котором я хочу выбирать входные данные из имен столбцов df.miRNA.cpm.t, а затем строить объект fitSurv. Имена столбцов (кроме TimeDiff и Status) должны быть раскрывающимся меню.
Я получаю сообщение об ошибке, что x не является числом c.
df.miRNA.cpm.t <- structure(list(hsa_miR_524_5p = c(-1.25502104562923, -1.27256722242831,
-1.33134902421063, -1.1390337316217, -1.14257242781803), hsa_miR_548aq_5p = c(-1.25502104562923,
-1.27256722242831, -1.33134902421063, -1.1390337316217, -1.14257242781803
), hsa_miR_6778_5p = c(-1.25502104562923, -1.27256722242831,
-1.33134902421063, -1.1390337316217, -1.14257242781803), hsa_miR_6812_5p = c(-1.25502104562923,
-1.27256722242831, -1.33134902421063, -1.1390337316217, -1.14257242781803
), hsa_miR_3122 = c(-1.25502104562923, -1.27256722242831, -1.33134902421063,
-1.1390337316217, -1.14257242781803), hsa_miR_3923 = c(-1.25502104562923,
-1.27256722242831, -1.33134902421063, -1.1390337316217, -1.14257242781803
), hsa_miR_4465 = c(-1.25502104562923, -1.27256722242831, -1.33134902421063,
-1.1390337316217, -1.14257242781803), hsa_miR_4641 = c(-1.25502104562923,
-1.27256722242831, -1.33134902421063, -1.1390337316217, -1.14257242781803
), TimeDiff = c(71.0416666666667, 601.958333333333, 1130, 1393,
117.041666666667), Status = c(1L, 1L, 0L, 0L, 1L)), row.names = c("86",
"175", "217", "394", "444"), class = "data.frame")
ui <- fluidPage(
selectInput("MicroRNA", "miRNA", choices = unique(colnames(df.miRNA.cpm.t[,1:8]))),
plotOutput("myplot"))
server <- function(input, output, session) {
output$myplot <- renderPlot({
fitSurv <- survfit(Surv(as.numeric(as.character(df.miRNA.cpm.t$TimeDiff)), as.numeric(as.character(df.miRNA.cpm.t$Status))) ~ paste(cut(as.numeric(as.character(input$MicroRNA)) , quantile(input$MicroRNA , probs = c(0, 0.8)), include.lowest=T)), data = as.data.frame((df.miRNA.cpm.t)))
ggsurvplot(fitSurv ,title="", xlab="Time (Yrs)", ylab="Survival prbability",
font.main = 8,
font.x = 8,
font.y = 8,
font.tickslab = 8,
font.legend=8,
pval.size = 3,
pval.coord = c(1000,1),
size=0.4,
legend = "right",
censor.size=2,
break.time.by = 365,
pval =T,#"p=0.003",#"p=0.41",
#xscale=365,
#palette = c("#E7B800", "#2E9FDF"),
#ggtheme = theme_bw(),
risk.table = F,
xscale=365.25,
xlim=c(0,7*365))
})
}
shinyApp(ui, server)