[Rd] Inconsistent is.list results on 'by' objects

Bill Dunlap w||||@mwdun|@p @end|ng |rom gm@||@com
Tue Nov 16 19:21:02 CET 2021


Try adding simplify=FALSE to the call to by().

-Bill

On Tue, Nov 16, 2021 at 4:04 AM Ofek Shilon <ofekshilon using gmail.com> wrote:

> Take this toy code:
> df       <- data.frame(a=seq(10), b=rep(1:2, 5))
> df.empty <- subset(df, a>10)
> byy       <- by(data=df,       INDICES=df$b, FUN=function(x) x[1,])
> byy.empty <- by(data=df.empty, INDICES=df.empty$b, FUN=function(x) x[1,])
>
> class(byy)       # "by"
> class(byy.empty) # "by"
>
> is.list(byy)        # TRUE
> is.list(byy.empty)  # FALSE!
>
>
> This behavior already messed up stuff elsewhere:
> https://github.com/Rdatatable/data.table/issues/5258
>
> I'd say any questions about the class of an object (whether 'class' or
> indirectly by 'is.**')
> should not have the answers depend on the specific contents of the object.
>
> Does this qualify as an R bug? Am I missing something?
>
>         [[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>

	[[alternative HTML version deleted]]



More information about the R-devel mailing list