2013-12-19 94 views
2

我注意到有時R在我操縱列時使用近似匹配。R和列名中的近似匹配

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

而不是告訴我,village$ag不存在,它將使用village$age

是否有可能改變這種行爲?

回答

4

您可以使用[

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

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

功能[[允許這兩種方法(參數exact):

> village[["ag"]] 
NULL 

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

> village[["ag", exact = FALSE]] 
[1] 18 19 

這種現象被稱爲部分匹配(見?pmatch):

> pmatch("ag", names(village)) 
[1] 1 
+0

是否可以取消激活這個部分匹配? – Ophelie

+0

@Ophelie使用村莊[[「age」]]有什麼問題? –