[R] Reclassify string values
Zev Ross
zev at zevross.com
Thu Nov 3 21:31:26 CET 2011
Hi Peter,
Thanks for the response. What you've suggested works fine but I'm
looking for something that is simpler than my solution and avoids the
pesky warning message. Your response avoids the warning message but just
as complex (if not more). I just assumed there would be a function along
the lines of:
> mydata <- c("A", "C", "A", "D", "B", "B")
> reclassify(mydata, inCategories=c("A", "B" ,"C", "D"),
outCategories=c("Group1", "Group1", "Group2", "Group2"))
[1] "Group1" "Group2" "Group1" "Group2" "Group1" "Group1"
Zev
On 11/3/2011 3:13 PM, Peter Langfelder wrote:
> On Thu, Nov 3, 2011 at 11:59 AM, Zev Ross<zev at zevross.com> wrote:
>> Hi All,
>>
>> Is there a simple way to convert a string such as c("A", "B" ,"C", "D") to a
>> string of c("Group1", "Group1", "Group2", "Group2"). Naturally I could use
>> the factor function as below but I don't like seeing that warning message
>> (and I don't want to turn off warning messages). Perhaps a function called
>> "reclassify" or "recategorize"?
>>
>> Zev
>>
>> x<-LETTERS[1:4]
>> x2<-as.character(factor(x, levels=LETTERS[1:4], labels=rep(c("Group1",
>> "Group2"), each=2)))
>>
>> Warning message:
>> In `levels<-`(`*tmp*`, value = c("Group1", "Group1", "Group2", "Group2" :
>> duplicated levels will not be allowed in factors anymore
> If you want to "translate", why not first build a translation table
>
> tt = cbind(LETTERS[1:4], c("group1", "group1", "group2", "group2"))
>
> then apply it on an example:
>
> xx = sample(LETTERS[1:4], 20, replace = TRUE)
>
> translation = tt[ match(xx, tt[, 1]), 2]
>
>> translation
> [1] "group2" "group2" "group2" "group2" "group2" "group1" "group2" "group1"
> [9] "group2" "group1" "group1" "group2" "group2" "group2" "group1" "group2"
> [17] "group2" "group1" "group1" "group2"
>
> Or did I misunderstand your intent?
>
> Peter
>
--
Zev Ross
ZevRoss Spatial Analysis
120 N Aurora, Suite 3A
Ithaca, NY 14850
607-277-0004 (phone)
866-877-3690 (fax, toll-free)
zev at zevross.com
More information about the R-help
mailing list