为什么`[`比‘子集’好‘?
当我需要过滤data.framework,即提取符合特定条件的行时,我更喜欢使用subset
职能:
subset(airquality, Month == 8 & Temp > 90)
而不是[
职能:
airquality[airquality$Month == 8 & airquality$Temp > 90, ]
我喜欢的主要原因有两个:
我发现代码从左到右读得更好。即使对R一无所知的人也能知道subset
上面的声明正在做。
因为列可以在select
表情,我可以保存一些击键。在上面的例子中,我只需键入airquality
一次subset
,但是有三次[
.
所以我过着幸福的生活subset
到处都是,因为它更短,读得更好,甚至向我的R程序员们宣传它的美丽。但昨天我的世界崩溃了。在阅读subset
文档,我注意到本节:
警告
这是一个便于交互使用的功能。对于编程来说,最好使用[这样的标准子集设置函数,特别是参数子集的非标准计算可能会产生意想不到的后果。
有人能帮我澄清作者的意思吗?
首先,他们所说的“供交互使用“?我知道什么是交互式会话,而不是以批处理模式运行的脚本,但我不认为它会产生什么不同。
那么,请你解释一下“参数子集的非标准求值“为什么它是危险的,也许可以举个例子?”