【发布时间】:2016-07-29 16:49:56
【问题描述】:
我想从书中重现一些计算(logit 回归)。这本书给出了一个列联表和结果。
这是表格:
.
example <- matrix(c(21,22,6,51), nrow = 2, byrow = TRUE)
#Labels:
rownames(example) <- c("Present","Absent")
colnames(example) <- c(">= 55", "<55")
它给了我这个:
>= 55 <55
Present 21 22
Absent 6 51
但要使用 glm() 函数,数据必须采用以下方式:
(两列,一列“Age”,一列“Present”,用0/1填充)
age <- c(rep(c(0),27), rep(c(1),73))
present <- c(rep(c(0),21), rep(c(1),6), rep(c(0),22), rep(c(1),51))
data <- data.frame(present, age)
> data
present age
1 0 0
2 0 0
3 0 0
. . .
. . .
. . .
100 1 1
有没有一种简单的方法可以从表/矩阵中获取这种结构?
【问题讨论】:
-
手工编码似乎是一次性的最简单方法。如果您认为您会多次执行此操作,您可以构建一个函数,将矩阵/表的元素作为上述
rep()函数的参数。如果矩阵的尺寸保持为 2X2,这将特别容易。如果它们发生变化,那么它将涉及更多的编码。 -
age <- c(rep(c(0),27), rep(c(1),73))中定义的年龄变量与表定义不匹配。 55岁以上的27人用1编码,55岁以下的73人用0编码。 -
谢谢!我没注意到。
标签: r glm contingency