为什么 $ 与线性模型的摘要不部分匹配?

问题描述

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

解决方法

?pmatch 中有一个线索(在 ?$ 中顺便引用)。

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

pmatch 的情况下,它是 NA_integer_,但在 $ 的情况下,我想它是 NULL(我真的不想深入 R 源代码验证码)。

更具体地说,"Indexing by vectors" section of the R language manual 表示

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

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

在更抽象的层面上,当有多个部分匹配时,很难想出一种不出所料/有原则/无危险的方法来解决歧义:选择第一个字母(可能因地区等而异) ?选择数字指数最低的那个?

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...