Vitalie Spinu
2010-Oct-08 08:53 UTC
[Rd] NULL assignment will change the expression's class into list
Hello Everyone! NULL replacement will change expression object into list:> > te <- expression(a=23*4, b=33-2) > teexpression(a = 23 * 4, b = 33 - 2)> te[["a"]] <- quote(blabla) #ok > teexpression(a = blabla, b = 33 - 2)> te[["a"]] <- NULL #change to list > te$b 33 - 2 I am on w32, version 2.11.1 (2010-05-31) Regards, Vitally. [[alternative HTML version deleted]]
Duncan Murdoch
2010-Oct-08 10:14 UTC
[Rd] NULL assignment will change the expression's class into list
Vitalie Spinu wrote:> Hello Everyone! > > NULL replacement will change expression object into list: > > >> te <- expression(a=23*4, b=33-2) >> te >> > expression(a = 23 * 4, b = 33 - 2) > > >> te[["a"]] <- quote(blabla) #ok >> te >> > expression(a = blabla, b = 33 - 2) > > >> te[["a"]] <- NULL #change to list >> te >> > $b > 33 - 2 > > I am on w32, version 2.11.1 (2010-05-31) >That's certainly an inconsistency, still present in a recent R-devel (but I haven't checked the latest beta). I don't know if it's a bug: NULL assignments are handled specially in other situations (e.g. if te was a list to start, the NULL assignment would remove the "a" entry). A simple workaround is to use te["a"] <- expression(NULL) or te <- te[-1] instead, depending on what you expected to happen. Duncan Murdoch> Regards, > Vitally. > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >