[R] create new column by replacing multiple unique values in existing column
john.archie.mckown at gmail.com
Thu Sep 11 18:16:43 CEST 2014
On Thu, Sep 11, 2014 at 10:49 AM, raz <barvazduck at gmail.com> wrote:
> I got the following data frame:
> dat1 <- read.table(text="a,b
> I would like to add a new column dat1$new based on column "b" (dat$b) in
> which values will be substituted according to their unique values e.g "A1"
> will be "1", "A2" will be "2" and so on (this is only a part of a large
> table). It would be better if I could change all unique values in dat1 to
> numbers 1:unique(n). if not then how do I change all values
> ("A1","A2","B1") to (1,2,3) in a new column?.
> Thanks a lot,
> [[alternative HTML version deleted]]
Please change your email client to post only in plain text, no HTML. Thanks.
And, lucky you. You __already__ have what you want in the table. Try
Hum, you just get what you're expecting. Things like A1 and B1 and so
on. Now try:
Whoa! You have unique integers based on the values in column b! That's
because the data in column b is a __factor__. And the as.integer()
prints the factor number instead of the factor value. If column b is
not a factor, then you can make it one with a simple: dat1$b <-
as.factor(dat1$b); it you really want it in a separate column for some
reason: dat1$new <- as.integer(dat1$b); But then you are responsible
for keeping columns b and new "in sync". Keeping/making column b a
factor lets you use as.integer() and you are GOLDEN!
There is nothing more pleasant than traveling and meeting new people!
More information about the R-help