我在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/

10-12 15:35