R 按变量名称的一部分引用变量

R 按变量名称的一部分引用变量,r,R,看起来,在R中,我可以引用一个带有部分变量名的变量。但我不明白为什么我可以这么做 以以下代码为例: library(car) scatterplot(housing ~ total) house.lm <- lm(housing ~ total) summary(house.lm) str(summary(house.lm)) summary(house.lm)$coefficients[2,2] summary(house.lm)$coe[2,2] 它们都给出了相同的结果:0.0102

看起来,在R中,我可以引用一个带有部分变量名的变量。但我不明白为什么我可以这么做

以以下代码为例:

library(car)
scatterplot(housing ~ total)
house.lm <- lm(housing ~ total)
summary(house.lm)
str(summary(house.lm))
summary(house.lm)$coefficients[2,2]
summary(house.lm)$coe[2,2]
它们都给出了相同的结果:0.01029709

因此,我想知道什么时候我可以在R中引用一个只有部分名称的变量?

调用函数时,您可以按位置、方式指定参数 完整名称,或部分名称。参数首先由 精确名称(完全匹配),然后通过前缀匹配,最后通过 位置


在进行快速编码以分析某些数据时,使用部分名称不是问题,但我倾向于同意,在编写代码时这样做不好。在一个包中,您不能这样做,
R-CMD check
将查找所有出现的情况。

当名称的其余部分不含糊时,您可以这样做。比如说

df <- data.frame(abcd = c(1,2,3), xyz = c(4,5,6), abc = c(5,6,7))
> df$xy
[1] 4 5 6
> df$ab
NULL
> df$x
[1] 4 5 6
df$xy
[1] 4 5 6
>df$ab
无效的
>df$x
[1] 4 5 6
df$xy
甚至
df$x
都提供了正确的数据,但是
df$ab
会导致
NULL
,因为它可以同时引用
df$abc
df$abcd
。这就像在RStudio中键入
df$xy
并按Ctrl+Space时,您将获得正确的变量名,因此您可以引用部分变量名

summary(house.lm)$coe[2,2]
summary(house.lm)$coef[2,2]
summary(house.lm)$coeff[2,2]
summary(house.lm)$coeffi[2,2]
summary(house.lm)$coeffic[2,2]
summary(house.lm)$coeffici[2,2]
summary(house.lm)$coefficie[2,2]
summary(house.lm)$coefficien[2,2]
summary(house.lm)$coefficient[2,2]
summary(house.lm)$coefficients[2,2]
df <- data.frame(abcd = c(1,2,3), xyz = c(4,5,6), abc = c(5,6,7))
> df$xy
[1] 4 5 6
> df$ab
NULL
> df$x
[1] 4 5 6