2015-12-13 27 views
0

我想爲Rcmdr使用KMggplot2插件。它似乎只與構建它的數據集dataKm一起工作。 enter image description here當我嘗試使用其他數據集(如肺)時,我沒有出現任何情節 - 只是錯誤消息「參數列數不匹配,下面是每個繪圖嘗試的代碼: 下面是我嘗試使用的代碼。肺數據,即使沒有試圖在風險清單有一些KMggplot2插件似乎只適用於包示例

 library(survival, pos=17) 
data(lung, package="survival") 
sapply(c("ggplot2", "grid"), require, character.only = TRUE) 
Loading required package: ggplot2 
Loading required package: grid 
ggplot2 grid 
    TRUE TRUE 
.df <- data.frame(x = lung$time, y = lung$status, z = factor("At risk")) 
.df <- .df[do.call(order, .df[, c("z", "x"), drop = FALSE]), , drop = FALSE] 
.fit <- survival::survfit(survival::Surv(time = x, event = y, type = "right") ~ z, .df) 
.fit <- data.frame(x = .fit$time, y = .fit$surv, nrisk = .fit$n.risk, nevent = .fit$n.event, ncensor= .fit$n.censor, upper = .fit$upper, lower = .fit$lower) 
.df <- unique(.df) 
.df <- .fit <- data.frame(.fit, .df[, c("z"), drop = FALSE]) 
Error in data.frame(.fit, .df[, c("z"), drop = FALSE]) : arguments imply differing number of rows: 186, 199 
.df <- .fit <- rbind(unique(data.frame(x = 0, y = 1, nrisk = NA, nevent = NA,  ncensor = NA, upper = 1, lower = 1, .df[, c("z"), drop = FALSE])), .fit) 
Error in rbind(deparse.level, ...) : numbers of columns of arguments do not match 
.cens <- subset(.fit, ncensor == 1) 
.plot <- ggplot(data = .fit, aes(x = x, y = y, colour = z)) + geom_step(data =  subset(.fit, !is.na(upper)), aes(y = upper), size = 1, lty = 2, alpha = 0.5, show_guide = FALSE, na.rm = FALSE) + 
geom_step(data = subset(.fit, !is.na(lower)), + aes(y = lower), size = 1, lty = 2, alpha = 0.5, show_guide = FALSE, na.rm = FALSE) + 
geom_step(size =1.5)+   geom_linerange(data = .cens, aes(x = x, ymin = y, ymax = y + 0.02), size = 1.5) +  
scale_x_continuous(breaks = seq(0, 900, by = 300), limits = c(0, 900)) +  scale_y_continuous(limits = c(0, 1), expand = c(0.01, 0)) + 
scale_colour_brewer(palette = "Set1") + xlab("Time from entry") + 
ylab("Proportion of survival") + 
theme_gray(base_size = 14, base_family = "serif") 
Error in +geom_step(size = 1.5) : invalid argument to unary operator+ 
theme(legend.position = "none") 
Error in inherits(x, "theme") : argument "e2" is missing, with no default 
print(.plot) 
Error in eval(expr, envir, enclos) : object 'z' not found 
+0

我試圖尋找在代碼第二個小組卻意識到我的問題應該已經以評論的形式得到答案。通常將頁面代碼投入到SO問題中,而沒有真實的數據描述或註釋來檢查無錯誤的進度將不會提示有用的答案。 (你也應該學會在合理的位置用換行符來格式化你的代碼。) –

+0

我會修改這個問題。 – FTF

回答

1

我剛剛收到來自開發商誰說,更新將在本月月底上傳這樣的響應: 「我們發現了一個bug用領帶數據handling.The下列代碼可用於引起的。」

sapply(c("ggplot2", "grid"), require, character.only = TRUE) 
.df <- data.frame(x = lung$time, y = lung$status, z = factor("At risk")) 
.df <- .df[do.call(order, .df[, c("z", "x"), drop = FALSE]), , drop = FALSE] 
.fit <- survival::survfit(survival::Surv(time = x, event = y, type = "right") ~ z, .df) 
.fit <- data.frame(x = .fit$time, y = .fit$surv, nrisk = .fit$n.risk, 
       nevent = .fit$n.event, ncensor= .fit$n.censor, upper = .fit$upper, lower = .fit$lower) 
.df <- .df[!duplicated(.df$x), ] 
.df <- .fit <- data.frame(.fit, .df[, c("z"), drop = FALSE]) 
.df <- .fit <- rbind(unique(data.frame(x = 0, y = 1, nrisk = NA, nevent = NA, ncensor = NA, upper = 1, lower = 1, .df[, c("z"), drop = FALSE])), .fit) 
.cens <- subset(.fit, ncensor == 1) .plot <- ggplot(data = .fit, aes(x = x, y = y, colour = z)) + 
geom_step(data = subset(.fit, !is.na(upper)), aes(y = upper), size = 1, lty = 2, alpha = 0.5, show_guide = FALSE, na.rm = FALSE) + 
geom_step(data = subset(.fit, !is.na(lower)), aes(y = lower), size = 1, lty = 2, alpha = 0.5, show_guide = FALSE, na.rm = FALSE) + 
geom_step(size = 1.5) + 
geom_linerange(data = .cens, aes(x = x, ymin = y, ymax = y + 0.02), size = 1.5) + 
scale_x_continuous(breaks = seq(0, 900, by = 300), limits = c(0, 900)) + 
scale_y_continuous(limits = c(0, 1), expand = c(0.01, 0)) + 
scale_colour_brewer(palette = "Set1") + 
xlab("Time from entry") + 
ylab("Proportion of survival") + 
theme_gray(base_size = 14, base_family = "serif") + 
theme(legend.position = "none") 
print(.plot) 
相關問題