我设法从挖掘这个网站的过程中删除了矩阵的第一行,但显然有一种更简单的方法。这就是我目前所拥有的:
> prestige.income <- lm(prestige ~ log2(income), data=Prestige)
> prestige.edu <- lm(prestige ~ education, data=Prestige)
> prestige.women <- lm(prestige ~ women, data=Prestige)
> prestige.all <- lm(prestige ~ education + income + women, data=Prestige)
> comparison <- cbind(INCOME=coef(prestige.income), EDUCATION=coef(prestige.edu),
WOMEN=coef(prestige.women), ALL=coef(prestige.mod))
> comparison
INCOME EDUCATION WOMEN ALL
(Intercept) -139.85572 -10.731982 48.69299929 -110.96582409
education 14.94173 5.360878 -0.06417284 3.73050783
log2(income) -139.85572 -10.731982 48.69299929 9.31466643
women 14.94173 5.360878 -0.06417284 0.04689514
> remove <- rownames(comparison)[1]
> remove
[1] "(Intercept)"
> comp.noint <- comparison[!rownames(comparison) %in% remove, ]
> comp.noint
INCOME EDUCATION WOMEN ALL
education 14.94173 5.360878 -0.06417284 3.73050783
log2(income) -139.85572 -10.731982 48.69299929 9.31466643
women 14.94173 5.360878 -0.06417284 0.04689514
这应该是我应该做的更容易的方式/方式,但我不明白它为什么会起作用:
> comparison[-1,-5]
INCOME EDUCATION WOMEN ALL
education 14.94173 5.360878 -0.06417284 3.73050783
log2(income) -139.85572 -10.731982 48.69299929 9.31466643
women 14.94173 5.360878 -0.06417284 0.04689514
有人告诉我-1排除了第一行,但实际上并没有这样做..
> comparison[-1]
[1] 14.94173191 -139.85572422 14.94173191 -10.73198197 5.36087773
[6] -10.73198197 5.36087773 48.69299929 -0.06417284 48.69299929
[11] -0.06417284 -110.96582409 3.73050783 9.31466643 0.04689514
我没有解释-5为什么做任何事情。我知道这可能是一个非常基本的问题,但是我的老师无法向我解释为什么这样有效,而且我在谷歌或教科书上找不到任何东西。任何帮助都会很棒。谢谢!
答案 0 :(得分:1)
将comparison[-1]
与[]
的单个参数一起使用,不再有矩阵,而是一个长度为16(4 x 4)的向量,由comparison
连接的所有列组成一个接一个地。否定参数会删除第一个元素(-139.85572
),剩下的就剩下15个。请注意,它们是从左到右打印的,而不是像矩阵的列那样从上到下打印。
使用comparison[-1,-5]
您仍然有一个矩阵,其中第一行和第五列是droped。哦,等等,没有第五列,所以忽略了-5
。例如,尝试comparison[-1,-4]
。