使用具有相同名称的基本R中的函数的变量名称似乎通常被认为是不良的编程习惯.
例如,写作很有诱惑力:
data <- data.frame(...)
df <- data.frame(...)
Run Code Online (Sandbox Code Playgroud)
现在,该函数data在函数df计算f密度函数时加载数据集.
同样,写作很有诱惑力:
a <- 1
b <- 2
c <- 3
Run Code Online (Sandbox Code Playgroud)
这被认为是不好的形式,因为该函数c将组合其参数.
但是:在R函数的主力中lm,计算线性模型data用作参数.换句话说,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"
Run Code Online (Sandbox Code Playgroud)
问题:具有与基本R函数同名的变量究竟是什么问题?