楼主: swoldhuang
13044 3

[问答] 关于“unexpected end of input”的error处理。 [推广有奖]

  • 0关注
  • 1粉丝

高中生

47%

还不是VIP/贵宾

-

威望
0
论坛币
6 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
14034 点
帖子
20
精华
0
在线时间
14 小时
注册时间
2013-6-16
最后登录
2017-10-30

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
自行编写的survival curve的function,旨在画出生存曲线和曲线下的no at risk表。
结果运行后报错,求帮助。
报错trackback如下:
Error in parse(text = x, keep.source = FALSE) :
  <text>:2:0: unexpected end of input
1: srv~
   ^
7.
parse(text = x, keep.source = FALSE)
6.
eval(parse(text = x, keep.source = FALSE)[[1L]])
5.
formula(eval(parse(text = x, keep.source = FALSE)[[1L]]))
4.
formula.character(object, env = baseenv())
3.
formula(object, env = baseenv())
2.
as.formula(paste("srv~", marker))
1.
ggsrv(time = "RFS", event = "resultR", data = data)

Error in parse(text = x, keep.source = FALSE) :
  <text>:2:0: unexpected end of input
1: srv~
   ^
7.
parse(text = x, keep.source = FALSE)
6.
eval(parse(text = x, keep.source = FALSE)[[1L]])
5.
formula(eval(parse(text = x, keep.source = FALSE)[[1L]]))
4.
formula.character(object, env = baseenv())
3.
formula(object, env = baseenv())
2.
as.formula(paste("srv~", marker))
1.
ggsrv(time = "RFS", event = "resultR", data = data)



原代码如下:
  1. ggsrv<-function(
  2.   time="os",
  3.   event="death",
  4.   event.marker=1,
  5.   marker="",
  6.   tabletitle="",
  7.   xlab="Months since surgery",
  8.   ylab="Overall Survival rate",
  9.   ystratalabs=c("High", "Low"),
  10.   pval=TRUE,
  11.   n.risk=FALSE,
  12.   timeby=2,
  13.   xmax=16,
  14.   fun="survival",
  15.   data = dat,
  16.   conf.int=FALSE,
  17.   returns = F,
  18.   ...)

  19. {
  20.   #Load the related packages
  21.   require(ggplot2)
  22.   require(survival)
  23.   require(gridExtra)
  24.   require(grid)
  25.   require(plyr)
  26.   require(cowplot)
  27.   #create survival fit and data
  28.   srv <- Surv(data[,time], data[,event]==event.marker)
  29.   form <- as.formula(paste("srv~",marker))
  30.   sfit=survfit(form,data = data)
  31.   sdiff=survdiff(form,data = data)
  32.   
  33.   if(is.null(ystratalabs)) {
  34.     ystratalabs <- as.character(levels(summary(sfit)$strata))
  35.   }
  36.   
  37.   m <- max(nchar(ystratalabs))
  38.   # if(xmax<=max(sdata$time)){
  39.   #   xlims=c(0, round(xmax/timeby, digits=0)*timeby)
  40.   # }else{
  41.   #   xlims=c(0, round((max(sdata$time))/timeby, digits=0)*timeby)
  42.   # }
  43.   
  44.   times <- seq(0, xmax, by = timeby)
  45.   
  46.   sdata <- data.frame(time = sfit$time,
  47.                       n.risk = sfit$n.risk,
  48.                       n.event = sfit$n.event,
  49.                       surv = sfit$surv,
  50.                       strata = summary(sfit, censored = T)$strata,
  51.                       upper = sfit$upper,
  52.                       lower = sfit$lower,
  53.                       n.censor = sfit$n.censor)
  54.   
  55.   levels(sdata$strata) <- ystratalabs
  56.   
  57.   zeros <- data.frame(time = 0,
  58.                       surv = 1,
  59.                       strata = factor(ystratalabs, levels=levels( sdata$strata)),
  60.                       upper = 1,
  61.                       lower = 1,
  62.                       n.censor=0)
  63.   
  64.   sdata <- rbind.fill(zeros,  sdata)
  65.   
  66.   
  67.   d <- length(levels(sdata$strata))
  68.   
  69.   dat.cens <- subset(sdata, n.censor != 0)
  70.   
  71.   if (fun=="event"){
  72.    
  73.     p <- ggplot(sdata, aes(x = time, y = 1-surv,group = strata, colour = strata)) +
  74.       geom_step(size = 1) +
  75.       scale_x_continuous(xlab, breaks = times, limits = c(0, max(times)), expand = c(0, 0)) +
  76.       scale_y_continuous(ylab, breaks=seq(0,1,by=0.2), limits=c(0,1),
  77.                          labels=c(as.character(seq(0,0.8,by=0.2)),"1.0"),expand = c(0, 0)) +
  78.       theme_classic() +
  79.       theme(axis.title.x = element_text(vjust = 0.5)) +
  80.       theme(panel.grid.minor = element_blank()) +
  81.       theme(legend.position = c(ifelse(m < 10, .28, .15), ifelse(d < 4, .75, .95))) +
  82.       theme(legend.key = element_rect(colour = NA)) +
  83.       ggtitle(tabletitle)+
  84.       geom_point(data = subset(sdata, n.censor != 0), aes(x = time, y = 1-surv), shape = 3)
  85.    
  86.   }else{
  87.     p <- ggplot(sdata, aes(x = time, y = surv,group = strata, colour = strata)) +
  88.       geom_step(size = 1) +
  89.       scale_x_continuous(xlab, breaks = times, limits = c(0, max(times)), expand = c(0, 0)) +
  90.       scale_y_continuous(ylab, breaks=seq(0,1,by=0.2), limits=c(0,1),
  91.                          labels=c(as.character(seq(0,0.8,by=0.2)),"1.0"),expand = c(0, 0)) +
  92.       theme_classic() +
  93.       theme(axis.title.x = element_text(vjust = 0.5)) +
  94.       theme(panel.grid.minor = element_blank()) +
  95.       theme(legend.position = c(ifelse(m < 10, .28, .15), ifelse(d < 4, .35, .45))) +
  96.       theme(legend.key = element_rect(colour = NA)) +
  97.       ggtitle(tabletitle)+
  98.       geom_point(data = subset(sdata, n.censor != 0), aes(x = time, y = surv), shape = 3)
  99.    
  100.   }
  101.   
  102.   #Add P value to plot  
  103.   
  104.   if(pval) {
  105.     sdiff <- survdiff(eval(sfit$call$formula), data = eval(sfit$call$data))
  106.     pval <- pchisq(sdiff$chisq, length(sdiff$n)-1, lower.tail = FALSE)
  107.     pvaltxt <- ifelse(pval < 0.0001, "p < 0.0001", paste("p =", signif(pval, 3)))
  108.     p <- p + annotate("text", x = 0.75 * max(times), y = 0.15, label = pvaltxt)
  109.   }
  110.   

  111.   if(n.risk) {
  112.     ## Create table graphic to include at-risk numbers
  113.     risk.data <- data.frame(strata = summary(sfit, times = times, extend = TRUE)$strata,
  114.                             time = as.numeric(as.factor(summary(sfit, times = times, extend = TRUE)$time)),
  115.                             n.risk = summary(sfit, times = times, extend = TRUE)$n.risk)
  116.    
  117.     data.table <- ggplot(risk.data, aes(x = time, y = strata,
  118.                                         label = format(n.risk, nsmall = 0))) +
  119.       #, color = strata)) +
  120.       geom_text(size=4) +
  121.       scale_y_discrete(breaks = as.character(levels(risk.data$strata)),
  122.                        labels = ystratalabs) +
  123.       
  124.       scale_x_discrete(expand = c(0, 0))+
  125.       theme(
  126.         panel.grid.major = element_blank(),
  127.         legend.position = "none",
  128.         plot.background = element_blank(),
  129.         panel.grid.major = element_blank(),
  130.         panel.grid.minor = element_blank(),
  131.         panel.border = element_blank(),
  132.         legend.position="none",
  133.         axis.line = element_blank(),
  134.         axis.text.x = element_blank(),
  135.         axis.text.y = element_text(size=10, face="bold", color = 'black'),
  136.         axis.ticks=element_blank(),
  137.         axis.title.x = element_blank(),
  138.         axis.title.y = element_blank(),
  139.         plot.title = element_blank()
  140.       )
  141.    
  142.    
  143.     both = rbind(ggplotGrob(p), ggplotGrob(data.table), size="last")
  144.     panels <- both$layout$t[grep("panel", both$layout$name)]
  145.     both$heights[panels] <- list(unit(1,"null"), unit(2, "lines"))
  146.     both <- gtable_add_rows(both, heights = unit(1,"line"), 8)
  147.     both <- gtable_add_grob(both,
  148.                             textGrob("Number at risk", hjust=0, x=0),
  149.                             t=9, l=2, r=4)
  150.     plot_grid(both)
  151.     } else {
  152.   return(p)
  153.     }
  154. }
复制代码


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Unexpected Expected expect Input Error unexpected error

R语言,共享万岁
沙发
嬴翎霄 发表于 2017-4-12 11:01:54 |只看作者 |坛友微信交流群
我也遇到这类的问题来着  换了个2.15版本的R解决了  你可以试试

使用道具

藤椅
swoldhuang 在职认证  发表于 2017-7-10 22:59:08 |只看作者 |坛友微信交流群
嬴翎霄 发表于 2017-4-12 11:01
我也遇到这类的问题来着  换了个2.15版本的R解决了  你可以试试
多谢,我试试

使用道具

板凳
xiaojiejier 发表于 2019-5-13 23:49:52 |只看作者 |坛友微信交流群
请问楼主解决了吗?
我也遇到这样的错误了,但奇怪的是我用数据中的一部分是能分析出结果的,然而导入所有数据的话就会报这个错,数据存储在Excel(.xlsx)格式中

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-2 19:10