[请在下面找到我的数据样本e
。
问题:如何提取在诺模图中生成的分数,然后将其作为协变量包含在我的数据框中?我想包括每一行(即患者)的个性化分数。
我目前有
> head(e)
rfs Ki67 WHO simpson age sex rad.dose recurrence
1 25.33 0.6 1 1 43 1 0 1
2 207.93 3.3 2 2 76 1 0 0
3 80.00 1.0 2 1 79 1 0 0
4 47.77 0.6 1 3 84 1 0 1
5 193.25 0.6 1 1 62 1 0 0
6 5.78 0.5 1 4 60 1 0 1
我想引入一个新的协变量e$score
。 e$score
应基于协变量e$Ki67
,e$simpson
,e$age
和e$sex
得出的分数在每个患者级别(即每一行)上计算。
为此,我使用以下代码生成了列线图:
library(rms) d <- datadist(e) options(datadist="d") e$simpson <- as.factor(e$simpson) e$sex <- as.factor(e$sex) a <- cph(Surv(rfs,recurrence)~Ki67+simpson+age+sex,data=e,surv=TRUE,x=TRUE,y=TRUE) surv <- Survival(a) nom <- nomogram(a, fun=list(function(x) surv(12, x), function(x) surv(36, x), function(x) surv(60, x)), funlabel=c("Probability of 1 year survival", "Probability of 3 years survival", "Probability of 5 years survival"), lp=T) plot(nom, xfrac=.2, total.points.label="Sum of all points", cex.axis = 1.05, #force.label = TRUE, tcl = 0.8, lmgp = 0.1, vnames="labels", col.grid=gray(c(0.85,0.95)))
所以,如何从
nom
中提取预测分数?我可以看到有一个线性预测变量,并且我认为这可能很有用,但我只是想不出如何做。
因此Ki67=1 (11 point)
,simpson=2 (34 point)
,age=45 (7 point)
和sex=0 (0 point)
的患者的总分为51,因此应为e$score=51
。
> print(nom) Points per unit of linear predictor: 34.35364 Linear predictor units per point : 0.029109 Ki67 Points 0.0 0 0.5 6 1.0 11 1.5 17 2.0 22 2.5 28 3.0 34 3.5 39 4.0 45 4.5 50 5.0 56 5.5 61 6.0 67 6.5 73 simpson Points 1 0 2 34 3 100 4 92 age Points 25 11 30 10 35 9 40 8 45 7 50 6 55 5 60 5 65 4 70 3 75 2 80 1 85 0 sex Points 0 0 1 34 Total Points Probability of 1 year survival 188 0.60 182 0.65 175 0.70 168 0.75 159 0.80 148 0.85 133 0.90 109 0.95 Total Points Probability of 3 years survival 182 0.3 173 0.4 163 0.5 153 0.6 140 0.7 124 0.8 98 0.9 Total Points Probability of 5 years survival 182 0.1 170 0.2 160 0.3 151 0.4 141 0.5 131 0.6 118 0.7 102 0.8 76 0.9
我的数据
e
e <- structure(list(rfs = c(25.33, 207.93, 80, 47.77, 193.25, 5.78,
6.08, 99.78, 0.69, 174.85, 30.75, 27.27, 162.27, 204.98, 122.81,
2.79, 150.08, 200.02, 20.53, 22.28, 197.65, 94.23, 195.94, 92.19,
6.93, 193.38, 14.09, 152.38, 49.15, 190.46, 50.56, 66.76, 188.58,
188.42, 78.65, 125.77, 176.59, 185.69, 185.23, 184.71, 184.31,
183.59, 181.49, 96.53, 180.63, 30.16, 65.71, 179.48, 111.47,
122.61, 177.35, 176.66, 0.13, 67.15, 175.31, 5.78, 53.45, 86.74,
174.65, 7.72, 169.53, 169.23, 41.99, 168.77, 167.69, 56.71, 163.84,
163.81, 162.69, 162.63, 162.37, 119.59, 88.02, 160.1, 159.47,
12.42, 155.56, 155.47, 155.27, 154.87, 56.18, 154.61, 9.33, 128.43,
56.51, 150.67, 40.9, 50.79, 47.93, 147.91, 83.58, 146.1, 144.69,
34.73, 142.82, 159.31, 140.58, 136.64, 135.52, 88.41), Ki67 = c(0.6,
3.3, 1, 0.6, 0.6, 0.5, 3.7, 0.8, 1.4, 1.1, 1.8, 1.6, 0.7, 0.5,
0.3, 0.2, 0.3, 0.9, 1.7, 0.5, 1.2, 4.1, 0.6, 1.4, 1.3, 1.8, 2.6,
0.7, 0.8, 1, 0.7, 0.7, 2.1, 1.3, 2.7, 1.3, 0.8, 1.1, 1.8, 1.8,
0.4, 0.9, 6.4, 1.7, 1.5, 0.6, 2.7, 0.4, 0.3, 1.5, 1.4, 1.8, 2.3,
0.7, 2.4, 2.2, 2.8, 1.2, 0.6, 5.3, 0.8, 3, 4, 0.5, 1.2, 5.1,
1.5, 0.6, 1.2, 1.7, 0.7, 1.4, 0.9, 2.7, 1.1, 0.9, 0.5, 0.7, 0.9,
0.4, 1.2, 0.8, 0.7, 0.8, 0.5, 0.9, 3.3, 0.5, 1.2, 1.1, 1.4, 2.5,
2.7, 0.7, 0.8, 4.2, 0.8, 0.5, 1.7, 1.2), WHO = c(1L, 2L, 2L,
1L, 1L, 1L, 2L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L,
1L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 2L,
2L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 3L, 1L,
1L, 2L, 1L, 1L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 2L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 1L, 1L,
1L), simpson = structure(c(1L, 2L, 1L, 3L, 1L, 4L, 3L, 4L, 2L,
2L, 2L, 2L, 2L, 1L, 2L, 4L, 4L, 4L, 2L, 1L, 2L, 1L, 2L, 2L, 2L,
2L, 1L, 1L, 1L, 3L, 2L, 1L, 1L, 1L, 2L, 1L, 1L, 2L, 2L, 2L, 1L,
2L, 2L, 2L, 3L, 3L, 2L, 2L, 4L, 2L, 2L, 1L, 2L, 1L, 2L, 4L, 4L,
2L, 1L, 4L, 1L, 2L, 2L, 2L, 2L, 3L, 1L, 1L, 2L, 1L, 1L, 2L, 4L,
2L, 1L, 3L, 1L, 2L, 2L, 3L, 4L, 1L, 4L, 1L, 2L, 1L, 4L, 3L, 3L,
4L, 3L, 2L, 1L, 4L, 4L, 2L, 2L, 2L, 2L, 2L), .Label = c("1",
"2", "3", "4"), class = "factor"), age = c(43, 76, 79, 84, 62,
60, 71, 76, 75, 69, 53, 70, 56, 45, 77, 63, 36, 41, 72, 56, 59,
84, 72, 83, 80, 49, 50, 68, 49, 46, 50, 73, 51, 45, 42, 73, 56,
63, 30, 67, 56, 58, 72, 51, 49, 68, 65, 60, 73, 64, 52, 65, 76,
78, 74, 79, 61, 39, 30, 77, 66, 58, 49, 67, 53, 69, 41, 42, 66,
57, 52, 25, 79, 64, 48, 51, 47, 46, 44, 68, 58, 41, 64, 76, 65,
60, 56, 46, 54, 50, 66, 42, 46, 66, 74, 83, 72, 54, 51, 77),
sex = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 1L, 1L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 2L,
1L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L, 2L,
1L, 1L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 1L, 2L, 2L,
2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 2L, 1L, 2L, 2L,
2L, 2L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 2L, 2L, 2L, 1L,
1L, 1L, 2L, 2L, 2L, 2L, 1L, 2L, 2L, 2L, 1L, 2L, 1L, 1L, 1L
), .Label = c("0", "1"), class = "factor"), rad.dose = c(0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.4, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.4, 0, 0, 0, 0,
0, 0, 0, 0, 0, 5.4, 0, 0, 53.24, 5.4, 0, 0, 0, 0, 0, 0, 5.4,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.4, 0, 0,
5.4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.4, 0, 0, 5.4, 0, 0,
0, 0, 5.4, 0, 0, 0, 0, 0), recurrence = c(1L, 0L, 0L, 1L,
0L, 1L, 1L, 1L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 1L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 1L, 0L, 0L, 1L, 0L,
0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 1L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 0L, 1L, 0L, 0L, 1L,
0L, 0L, 0L, 0L, 0L, 1L)), row.names = c(NA, 100L), class = "data.frame")
[请在下面找到我的数据样本e。问题:如何提取在诺模图中生成的分数,然后将其作为协变量包含在数据框中?我想包括...
我们可以将nom
分为子组,然后使用$