Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
S4从data.frame继承的对象:删除dplyr::filter中的警告_R_Inheritance_Dplyr_S4 - Fatal编程技术网

S4从data.frame继承的对象:删除dplyr::filter中的警告

S4从data.frame继承的对象:删除dplyr::filter中的警告,r,inheritance,dplyr,s4,R,Inheritance,Dplyr,S4,我有一个从data.frame继承的S4类: > setClass("Foo", contains="data.frame") > x <- new("Foo", data.frame(a=1:2)) 有什么好办法可以摆脱这个警告吗?我可以创建一个新的 通用的过滤器,并将dplyr版本包装在该文件中 像 但是继承的意义不在于避免这些额外的工作吗 此警告是否与dplyr不知道S4对象有关 编辑:dplyr 0.4.3和0.5.0的相同行为使用TIBLE包,其中从data.fra

我有一个从data.frame继承的S4类:

> setClass("Foo", contains="data.frame")
> x <- new("Foo", data.frame(a=1:2))
有什么好办法可以摆脱这个警告吗?我可以创建一个新的 通用的
过滤器
,并将dplyr版本包装在该文件中 像

但是继承的意义不在于避免这些额外的工作吗

此警告是否与dplyr不知道S4对象有关


编辑:dplyr 0.4.3和0.5.0的相同行为使用TIBLE包,其中从data.frame到TIBLE的转换将为参数指定三个类<在此之前调用了code>unclass(),但unclass不会使对象失去作为S4对象的状态,因此会出现上述警告


简而言之,这是dplyr中的一个问题。我想你得为仿制药做包装。

谢谢。我怀疑dplyr(和data.table,可能还有更多)只是忽略了被S4的对象。应该在github开始。是的,必须在那里进行。或者如果运气好的话,其他人会想出一个简单的解决办法。我才刚刚开始使用S4,仍然不确定什么是可能的。
> x %>% dplyr::filter(a > 1)
  a
1 2
Warning message:
In class(x) <- c("tbl_df", "tbl", "data.frame") :
  Setting class(x) to multiple strings ("tbl_df", "tbl", ...); result
  will no longer be an S4 object
dplyr::filter(as.data.frame(unclass(x)), ...)