В чем именно проблема в R с переменными с тем же именем, что и базовые функции R?

Обычно считается плохой практикой программирования использовать имена переменных, которые имеют функции в базе R с тем же именем.

Например, есть соблазн написать:

data <- data.frame(...)
df   <- data.frame(...)

Теперь функция data загружает наборы данных, в то время как функция df вычисляет функцию плотности f.

Аналогичным образом возникает соблазн написать:

a <- 1
b <- 2
c <- 3

Это считается плохим тоном, потому что функция c объединит свои аргументы.

Но: В этой рабочей лошадке функций R, lm , для вычисления линейных моделей, данные используются в качестве аргумента. Другими словами, data становится явной переменной внутри функции lm .

Итак: Если основная группа R может использовать идентичные имена для переменных и функций, что останавливает нас, простых смертных?

Ответ не в том, что R запутается. Попробуйте следующий пример, где я явно назначаю переменную с именем c . R совершенно не путается с разницей между переменной и функцией:

c("A", "B")
[1] "A" "B"

c <- c("Some text", "Second", "Third")
c(1, 3, 5)
[1] 1 3 5

c[3]
[1] "Third"

Вопрос: В чем именно проблема с наличием переменной с тем же именем, что и у базовой функции R?

46
задан Andrie 26 May 2011 в 08:44
поделиться