- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
任何人都知道如何利用ggplot或lattice进行生存分析?制作网格或类似面的生存图会很好。
所以最后我玩了一会儿,找到了 Kaplan-Meier 情节的解决方案。我为将列表元素放入数据框中的困惑代码道歉,但我想不出另一种方法。
注意:它仅适用于两层地层。如果有人知道我如何使用 x<-length(stratum)
要做到这一点,请让我知道(在 Stata 中,我可以附加到一个宏 - 不确定这在 R 中是如何工作的)。
ggkm<-function(time,event,stratum) {
m2s<-Surv(time,as.numeric(event))
fit <- survfit(m2s ~ stratum)
f$time <- fit$time
f$surv <- fit$surv
f$strata <- c(rep(names(fit$strata[1]),fit$strata[1]),
rep(names(fit$strata[2]),fit$strata[2]))
f$upper <- fit$upper
f$lower <- fit$lower
r <- ggplot (f, aes(x=time, y=surv, fill=strata, group=strata))
+geom_line()+geom_ribbon(aes(ymin=lower,ymax=upper),alpha=0.3)
return(r)
}
最佳答案
我一直在lattice
中使用以下代码.第一个函数为一组绘制 KM 曲线,通常用作 panel.group
函数,而第二个为整个面板添加对数秩检验 p 值:
km.panel <- function(x,y,type,mark.time=T,...){
na.part <- is.na(x)|is.na(y)
x <- x[!na.part]
y <- y[!na.part]
if (length(x)==0) return()
fit <- survfit(Surv(x,y)~1)
if (mark.time){
cens <- which(fit$time %in% x[y==0])
panel.xyplot(fit$time[cens], fit$surv[cens], type="p",...)
}
panel.xyplot(c(0,fit$time), c(1,fit$surv),type="s",...)
}
logrank.panel <- function(x,y,subscripts,groups,...){
lr <- survdiff(Surv(x,y)~groups[subscripts])
otmp <- lr$obs
etmp <- lr$exp
df <- (sum(1 * (etmp > 0))) - 1
p <- 1 - pchisq(lr$chisq, df)
p.text <- paste("p=", signif(p, 2))
grid.text(p.text, 0.95, 0.05, just=c("right","bottom"))
panel.superpose(x=x,y=y,subscripts=subscripts,groups=groups,...)
}
library(survival)
library(lattice)
library(grid)
data(colon) #built-in example data set
xyplot(status~time, data=colon, groups=rx, panel.groups=km.panel, panel=logrank.panel)
关于r - 在 ggplot 或点阵中使用 Surv 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2953641/
仅当连接具有正斜率时,是否有一种舒适的方法来连接点? (否则该函数的行为应与 xyplot(...) 完全相同) library(lattice) dat <- data.frame(x=1:10,y
我正在尝试通过 python 使用 OpenCV 从图像中提取文本,但得到的结果不正确并且大部分得到的是特殊字符,请更正这里的错误 import cv2 import numpy as np impo
我有一个网站生成一些简单的表格数据作为 html 表格,我的许多用户在激光/喷墨打印机上打印网页;然而,有些人喜欢在旧式点阵打印机上打印(仅文本),这就是问题所在。 当从网络浏览器打印到点阵打印机时,
我正在尝试使用 C 代码制作 FCC 100 和 FCC 111 晶格。我已经配置了 FCC 100 点阵,并且配置正确。然而,当我尝试制作 FCC 111 晶格时,它看起来与我预期的不同。我使用引用
我是一名优秀的程序员,十分优秀!