对不起,如果这是微不足道的.我在R中看到以下行为:
> myDF <- data.frame(Score=5, scoreScaled=1)
> myDF$score ## forgot that the Score variable was capitalized
[1] 1
Run Code Online (Sandbox Code Playgroud)
预期结果:返回NULL(甚至更好:抛出错误).
我搜索过这个,但无法找到任何关于此行为的讨论.是否有人能够就此提供任何参考,为什么要这样做的理由以及是否有任何方法可以防止这种情况?一般来说,我会喜欢一个R版本,它的变量稍微严格一些,但似乎永远不会发生......
在$
操作者需要一个数据帧的名称来索引它仅第一独特部分.例如:
> d <- data.frame(score=1, scotch=2)
> d$sco
NULL
> d$scor
[1] 1
Run Code Online (Sandbox Code Playgroud)
避免这种行为的一种方法是使用[[]]运算符,其行为如下:
> d <- data.frame(score=1, scotch=2)
> d[['scor']]
NULL
> d[['score']]
[1] 1
Run Code Online (Sandbox Code Playgroud)
我希望这很有帮助.
干杯!