(Let's keep the discussion on-list -- I've added back R-devel.)
On 2017-04-12 16:39, Ulrich Windl wrote:
Henric Winell <nilsson.henric at gmail.com> schrieb am 12.04.2017 um 15:35 in
Nachricht <b66fe849-bb8d-f00d-87e5-553f866d57e0 at gmail.com>:
On 2017-04-12 14:40, Ulrich Windl wrote:
The last line of the example in droplevels' manual page seems to be incorrect to me. I think it should read: "table(droplevels(aq$Month))". Amazingly (I don't understand) both variants seem to produce the same result (R 3.3.3): ---
The manual says that "The function 'droplevels' is used to drop unused levels from a 'factor' or, more commonly, from factors in a data frame." and, as documented, the 'droplevels' generic has methods for objects of class "data.frame" and "factor". So, your being amazed is a bit surprising given that 'aq' is a data frame.
The "surprising" thing is the syntax: I was unaware that '$' is a generic operator that can be applied to the result of a function (i.e.: droplevels); I thought it's kind of a special variable syntax.
Then your surprise is unrelated to the use of 'droplevels'. Since the 'droplevels' method for objects of class "data.frame" returns a data frame, the extraction operator '$' works directly on the resulting object. So, 'droplevels(aq)$Month' is essentially the same as aq <- droplevels(aq) aq$Month > Isn't there also the syntax ``droplevels(aq)["Month"]''? Sure, and there are even more ways to do subsetting. But this is basic stuff and therefore off-topic for R-devel. Please see the manual (?Extract) or, e.g., Chapter 3 of Hadley Wickham's "Advanced R". Henric Winell
Regards, Ulrich
Henric Winell
aq <- transform(airquality, Month = factor(Month, labels = month.abb[5:9])) aq <- subset(aq, Month != "Jul") table(aq$Month)
May Jun Jul Aug Sep 31 30 0 31 30
table(droplevels(aq)$Month)
May Jun Aug Sep 31 30 31 30
table(droplevels(aq$Month))
May Jun Aug Sep 31 30 31 30
--- For the sake of learners, try to keep the examples simple and useful, even though you experts want to impress the newbees... Ulrich
______________________________________________ R-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel