Wiem, że dla listy częściowe dopasowywanie jest wykonywane podczas indeksowania przy użyciu podstawowych operatorów $
i [[
. Na przykład:Częściowe dopasowanie argumentu funkcji
ll <- list(yy=1)
ll$y
[1] 1
Ale nadal jestem newbie R i to jest dla mnie nowe, częściowe dopasowanie argumentów funkcji:
h <- function(xx=2)xx
h(x=2)
[1] 2
Chcę zrozumieć jak to działa. Jaki mechanizm za tym stoi? Czy ma to jakieś skutki uboczne? Chcę zrozumieć, w jaki sposób można sprawdzić, czy argument xx został podany?
Edit po Andrie komentarza:
Wewnętrznie R wykorzystuje algorytm pmatch
dopasować argumentu, tutaj przykład jak to działa:
pmatch("me", c("mean", "median", "mode")) # error multiple partial matches
[1] NA
> pmatch("mo", c("mean", "median", "mode")) # mo match mode match here
[1] 3
Ale dlaczego R ma taką funkcję? Jaka jest podstawowa idea dopasowania partial unique
?
Przeczytaj http://cran.r-project.org/doc/manuals/R-lang.html#Argument-matching – Andrie
@Andrie Dzięki za link! Przyjmuję to jako odpowiedź, nawet jeśli nie wyjaśnia, dlaczego R ma tę funkcję? Wygląda to na efekt uboczny innych funkcji, ponieważ jest błędem mieć wiele częściowych dopasowań. – agstudy
Oto odgadnięcie "dlaczego". R został zaprojektowany jako język statystyk linii poleceń. Szybki i łatwy sposób analizy danych. Dopasowanie częściowe ułatwia analizę linii poleceń (ale programowanie jest bardziej obarczone). – csgillespie