On 11 Oct 2016, at 01:32 , S Ellison <s.elli...@lgcgroup.com> wrote:
>> Well, I think that's kind of overkill. > Depends whether you want to recode all or some, and how robust you want the > answer to be. > recode() allows you to recode a few levels of many, without dependence on > level ordering; that's kind of neat. > > tbh, though, I don't use recode() a lot; I generally find myself need to > change a fair proportion of level labels. > > But I do get nervous about relying on specific ordering; it can break without > visible warning if the data change (eg if you lose a factor level with a > slightly different data set, integer indexing will give you apparently valid > reassignment to the wrong new codes). So I tend to go via named vectors even > if it costs me a lot of typing. For example to change > lcase<-c('a', 'b', 'c') > > to c('B', 'A', 'C') I'll use something like > > c(a='B', b='A', c='C')[lcase] > > or, if lcase were a factor, > c(a='B', b='A', c='C')[as.character(lcase)] Notice that similar functionality is available via levels<-() (see help page for more features) > f <- factor(c("a","b","c")) > levels(f) <- list(A="a", B="b", C="c") > f [1] A B C Levels: A B C The main advantage of this is that you control the level ordering, and also that you don't quite as easily get caught out by unused levels: > f <- factor(c("a","c")) > levels(f) <- list(A="a", B="b", C="c") > table(f) f A B C 1 0 1 (in which the 0 count might be important). -pd > > Unlike using the numeric levels, that doesn't fail if some of the levels I > expect are absent; it only fails (and does so visibly) when there's a value > in there that I haven't assigned a coding to. So it's a tad more robust. > > Steve E > > > > > > > ******************************************************************* > This email and any attachments are confidential. Any use...{{dropped:8}} > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. -- Peter Dalgaard, Professor, Center for Statistics, Copenhagen Business School Solbjerg Plads 3, 2000 Frederiksberg, Denmark Phone: (+45)38153501 Office: A 4.23 Email: pd....@cbs.dk Priv: pda...@gmail.com ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.