使用以R为基数的函数具有相同名称的变量名似乎通常被认为是糟糕的编程实践.
例如,很容易写:
data <- data.frame(...)
df <- data.frame(...)
现在,函数data
加载数据集,而函数df
计算f密度函数.
类似地,人们也很容易写:
a <- 1
b <- 2
c <- 3
这被认为是糟糕的形式,因为函数c
将组合其参数.
But:在计算线性模型的R函数lm
中,data
被用作参数.换句话说,data
在lm
函数中成为显式变量.
So:如果R核心团队可以对变量和函数使用相同的名称,那么什么能阻止我们成为凡人呢?
答案并不是R会感到困惑.try 以下示例,其中我显式地分配了一个名为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"
The question:使用与基R函数同名的变量到底有什么问题?