首页 > 解决方案 > 为什么 $ 与线性模型的摘要不部分匹配?

问题描述

summary(lm(wt~mpg,data=mtcars))->aa$r返回NULL,表明没有以 . 开头的变量名称r。然而,两者都a$residuals给出了a$r.squared有效的输出,与这个前提相矛盾。我对$运营商的误解是什么?我认为它总是部分匹配。

标签: rdollar-sign

解决方案


有一个线索?pmatch(顺便提及?$)。

nomatch:在不匹配或乘以部分匹配位置返回的值。

pmatch它的情况下NA_integer_,但在$我猜它是 NULL 的情况下(我真的不想在 R 源代码的深处进行确认)。

更具体地说,R语言手册的“按向量索引”部分

x$aax$aabb如果x不包含名为“aa”的组件并且“aabb”是唯一具有前缀“aa”的名称,则将匹配。

它没有明确说明 NULL 否则会返回,但这通常是在没有匹配项时得到的(例如a$junk)。

在更抽象的层面上,当有多个部分匹配时,很难想出一种不令人惊讶/有原则/非危险的方法来解决歧义:选择第一个字母顺序的(可能因语言环境等而不同)?选择数字索引最低的那个?


推荐阅读