我在R中犯了这个菜鸟错误
subset(mtcars, cyl = 4)
用单等于
=
而不是双等于==
为什么它会静默失败,即返回未过滤的列表,而不是出现错误而中断?
最佳答案
实际发生的情况是,将cyl = 4
视为传递给...
中subset.data.frame
的附加命名参数,因此实际上没有subset
参数可用于过滤。
至于为什么在这种情况下以不引发错误的方式进行编程,则必须向R Core寻求真正的答案。但是基于R的功能参数匹配的方式,似乎很难检测到。或至少尴尬。
例如,如果一个程序包为subset
实现了一个新的S3方法,而该方法具有一个实际的附加参数称为cyl
,该怎么办?
关于r - 为什么当我使用单等于时R子集会无声地失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28240401/