hello, how can take the string in the data frame. right now i have a table that create as a data frame and stored in the file called "data.xls" and now i want to read data frame as a table in my another r program, i used the following command: the first column of the data frame is just one number called "num", but the second one a list of string, called "name". d <- read.table("data.xls", header = T); what i get for d is a table of 2 columns: num and name: the one for d$num is just a normal list without any levels with it, and this is what i want. but the second d$name is a list with a levels with it. the list i have for d$name is: d$name = (bal bal bal bal bal bal), levlels:bal, however, when i want to have for following code, something different happens: namelist <- NA; a <- d$name[1]; #this will outputs a = bal, lelvels:bal namelist <- c(namelist, a); #this does not outptu (NA, bal), instead it outputs (NA, 1), if i keep #adding a to the namelist, it keeps adding 1 to the namelist instead of bal. However, i want to add bal to the namelist, not 1, so how i can do this? Thank you very much. Cuichang Zhao April 15, 2005 --------------------------------- [[alternative HTML version deleted]]
str <- as.character(d$name) should do the trick. (damn... my shift key just broke as well...) bill venables. -----Original Message----- From: r-help-bounces at stat.math.ethz.ch [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Cuichang Zhao Sent: Saturday, 16 April 2005 2:00 PM To: r-help at stat.math.ethz.ch Subject: [R] String in data frame hello, how can take the string in the data frame. right now i have a table that create as a data frame and stored in the file called "data.xls" and now i want to read data frame as a table in my another r program, i used the following command: the first column of the data frame is just one number called "num", but the second one a list of string, called "name". d <- read.table("data.xls", header = T); what i get for d is a table of 2 columns: num and name: the one for d$num is just a normal list without any levels with it, and this is what i want. but the second d$name is a list with a levels with it. the list i have for d$name is: d$name = (bal bal bal bal bal bal), levlels:bal, however, when i want to have for following code, something different happens: namelist <- NA; a <- d$name[1]; #this will outputs a = bal, lelvels:bal namelist <- c(namelist, a); #this does not outptu (NA, bal), instead it outputs (NA, 1), if i keep #adding a to the namelist, it keeps adding 1 to the namelist instead of bal. However, i want to add bal to the namelist, not 1, so how i can do this? Thank you very much. Cuichang Zhao April 15, 2005 --------------------------------- [[alternative HTML version deleted]] ______________________________________________ R-help at stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
Please read `An Introduction to R': R does not have `strings' or `namelists' whereas it does have `lists' but d$num is not one. To communicate, you need a common language with your readers. You are not speaking R, and your `examples' are not R output. I suspect d$num is a numeric vector and d$name is a factor. Please look up those concepts and the help for c(), noting that `NA' is a logical vector. In particular you need to understand The default method combines its arguments to form a vector. All arguments are coerced to a common type which is the type of the returned value. On Fri, 15 Apr 2005, Cuichang Zhao wrote:> hello, > how can take the string in the data frame. > right now i have a table that create as a data frame and stored in the file called "data.xls" and now i want to read data frame as a table in my another r program, i used the following command: > the first column of the data frame is just one number called "num", but the second one a list of string, called "name". > > d <- read.table("data.xls", header = T); > > what i get for d is a table of 2 columns: num and name: > > the one for d$num is just a normal list without any levels with it, and this is what i want. but the second d$name is a list with a levels with it. > the list i have for d$name is: d$name = (bal bal bal bal bal bal), levlels:bal, however, when i want to have for following code, something different happens: > namelist <- NA; > a <- d$name[1]; #this will outputs a = bal, lelvels:bal > namelist <- c(namelist, a); #this does not outptu (NA, bal), instead it outputs (NA, 1), if i keep #adding a to the namelist, it keeps adding 1 to the namelist instead of bal. However, i want to add bal to the namelist, not 1, so how i can do this?> [[alternative HTML version deleted]]> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.htmlPLEASE do as we ask (and not sent HTML mail). -- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595