[R] Changing names of a string variable

Erik Iverson eriki at ccbr.umn.edu
Tue Dec 7 20:31:02 CET 2010


To do what you want, see ?toupper :

levels(dat$target) <- toupper(levels(dat$target))

However, for clarity,

dat$target is not a "string variable", it is a factor,
which you can verify with

 > str(dat)

Factors are enumerated types, and have a discrete
set of 'levels' associated with them,
which can be queried with the ?levels function.

'Behind the scenes', R is storing this variable
as numeric codes, not the character string associated
with each numeric code.

This contrasts with character vectors.


Jahan wrote:
> Hello,
> Here is the data set I am working with:
> dat=read.csv('http://dl.dropbox.com/u/1852742/relexpressions.csv')
> names(dat)
> #Under the 'target' column, I want to change all of the values into
> all capital letters (e.g. fgf2 becomes FGF2).  I have taken a loop
> approach but I think my Python background is confusing me.  Here is
> what I attempted:
> for(line in dat[,1]){if(line=='fgf2'){line<-'FGF2'}}
> #I made sure that it was looping through each line by entering:
> for(line in dat[,1]){if(line=='fgf2'){print(line)}} #Which did exactly
> what I thought it would.
> #This doesn't change anything, though.  Also, after reading the
> documentation I am still confused how to add multiple "if"
> statements.  I would need that because I need to change the names of
> fgf2, fgf7, and fgf10.
> #I am sure there is a built-in function to do what I need, but I
> haven't found it yet so I tried this loop method.  Any help is greatly
> appreciated!
> Jahan
> ______________________________________________
> 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