最佳答案
当我需要过滤data.frame时,即提取符合特定条件的行,我更喜欢使用subset
函数:
subset(airquality, Month == 8 & Temp > 90)
而不是[
函数:
airquality[airquality$Month == 8 & airquality$Temp > 90, ]
我的选择主要有两个原因:
subset
语句在做什么。
select
表达式中被引用为变量,所以我可以节省一些按键。在上面的例子中,我只需要用subset
输入airquality
一次,但是用[
输入了三次。
所以我生活得很快乐,到处都在使用subset
,因为它更短,读起来更好,甚至向我的R程序员同事宣扬它的美丽。但是昨天我的世界崩溃了。在阅读subset
文档时,我注意到这部分:
警告
这是一个方便交互使用的功能。对于编程来说,最好使用像[这样的标准子集函数,特别是参数子集的非标准求值可能会产生意想不到的结果。
有人能帮我解释一下作者的意思吗?
首先,“用于交互使用"”是什么意思?我知道什么是交互式会话,而不是在BATCH模式下运行的脚本,但我不知道它应该有什么不同。
那么,你能不能解释一下“参数子集的非标准求值"为什么它是危险的,也许可以举个例子?