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
Hello, 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. --Erik 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.
Jahan - Try dat$target = toupper(dat$target) I would not recommend a loop for something like this. (You might also want to brush up on your python, because what you're trying doesn't work in python either.) - Phil Spector Statistical Computing Facility Department of Statistics UC Berkeley spector at stat.berkeley.edu On Tue, 7 Dec 2010, 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. >