[R] assignment operator saving factor level as number

Jeffrey Spies jspies at virginia.edu
Fri Nov 5 21:12:44 CET 2010


Perhaps this will help:

> test1 <- test2 <- data.frame(col1=factor(c(1:3), labels=c("a", "b", "c")))
> test3 <- data.frame(col1 = 1:3)

Now:

> test2[2,1] <- test1$col1[1]
> test2$col1
[1] a a c
Levels: a b c

vs

> test3[2,1] <- test1$col1[1]
> test3$col1
[1] 1 1 3

Because test3's first column, col1, is a vector of numeric, and each
element of a vector must have the same data type (numeric, factor,
etc), it will coerce the data coming in to have the same data type (if
it can).  In this case, the data type is numeric.  Had it been a
character coming in, because it can't coerce a character to a numeric,
it would have made the entire vector a vector of characters:

> test3[2,1] <- 'b'
> test3$col1
[1] "1" "b" "3"

Hope that demonstrates what's probably going on,

Jeff.

On Fri, Nov 5, 2010 at 3:54 PM, Wade Wall <wade.wall at gmail.com> wrote:
> Hi all,
>
> I have a dataframe (df1) that I am trying to select values from to a second
> dataframe that at the current time is only for the selected items from df1
> (df2).  The values that I am trying to save from df1 are factors with
> alphanumeric names
>
> df1 looks like this:
>
> 'data.frame':   3014 obs. of  13 variables:
>  $ Num         : int  1 1 1 2 2 2 3 3 3 4 ...
>  $ Tag_Num     : int  1195 1195 1195 1162 1162 1162 1106 1106 1106 1173 ...
>  $ Site        : Factor w/ 25 levels "PYBR002A","PYBR003B",..: 1 1 1 1 1 1 1
> 1 1 1 ...
>  $ Site_IndNum : Factor w/ 1044 levels "PYBR002A_001",..: 1 1 1 2 2 2 3 3 3
> 4 ...
>  .... ...
>  $ Area        : num  463.3 29.5 101.8 152.9 34.6 ...
>
> However, whenever I try to assign values, like this
>
> df2[j,1]<-df2$Site[i]
>
> the values are changed from alphanumeric (e.g. PYBR003A) to numerals (e.g.
> 1).
>
> Does anyone know why this is happening and how I can assign the actual
> values from df1 to df2?
>
> Thanks in advance,
>
> Wade
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> 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.
>



More information about the R-help mailing list