两者之间的主要区别是选择列的方式。airDF[is_vacation, airDF$ArrDelay]使用$符号选择ArrDelay列,而airDF[is_vacation, 'ArrDelay']使用单引号括起来的ArrDelay字符串选择列。以下是代码示例:
airDF <- data.frame(ArrDelay = c(10, 5, -3, NA, 2), DepDelay = c(8, 3, NA, 2, 0), is_vacation = c(TRUE, FALSE, TRUE, FALSE, TRUE))
airDF[airDF$is_vacation, airDF$ArrDelay]
[.data.frame
(airDF, airDF$is_vacation, airDF$ArrDelay) :airDF[airDF$is_vacation, 'ArrDelay']
在第一个选取方式中,由于$符号没有将ArrDelay视为字符串,所以需要产生上述警告信息。因此,第二种方法是更常见的做法。