R和列名称中的近似匹配

Oph*_*lie 3 r

我注意到有时R在操作列时使用近似匹配.

age=18:19
height=c(76.1,77)
village=data.frame(age=age,height=height)
village$test=village$ag+2
Run Code Online (Sandbox Code Playgroud)

village$ag它将使用,而不是告诉我那不存在village$age.

是否有可能改变这种行为?

Sve*_*ein 7

您可以使用 [

> village["ag"]
Fehler in `[.data.frame`(village, "ag") : undefined columns selected

> village["age"]
  age
1  18
2  19
Run Code Online (Sandbox Code Playgroud)

该函数[[允许两种方法(参数exact):

> village[["ag"]]
NULL

> village[["age"]]
[1] 18 19

> village[["ag", exact = FALSE]]
[1] 18 19
Run Code Online (Sandbox Code Playgroud)

这种现象称为部分匹配(见?pmatch):

> pmatch("ag", names(village))
[1] 1
Run Code Online (Sandbox Code Playgroud)