尝试获取指定数量的观察值的“计数”时,似乎每个函数都起作用,因为它们得出相同的结果。但是,这些功能在后台的运行方式有何不同?在什么情况下将一个交换为另一个不合适?
sum(grade.data$Quiz >= (100*.45))
length(which(grade.data$Quiz >= (100*.45)))
nrow(grade.data[grade.data$Quiz >= (100*.45),])
当缺少值时,中间一个不会给出误导性的答案。其他两个都会。
数字1求和一个逻辑矢量,该逻辑矢量被强制为1和0。如果添加了na.rm,则在存在NA的情况下将是有效的。
数字2确定数字矢量的长度。
第三个构造一个子集,然后计算行数。我希望与其他两个相比,它效率不高,并且存在NA值问题。如果您& !is.na(grade.data$Quiz)
在里面添加了逻辑表达式[ , ]
,您将获得有效答案。
像第三个方法一样(但效率低下)却没有NA问题的第四个方法是:
nrow( subset( grade.data, Quiz >= (100*.45) ) )
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句