Try this. It matches the first numeric string on each line applying as.numeric to it and then using c to simplify the resulting list to a numeric vector.
> x <- c("from 1000$ to 2000$", "from 2000$ to 3000$", "more than 3000$", + "from 1000$ to 2000$", "from 1000$ to 2000$") > library(gsubfn) > strapply(x, "([0-9]+).*", as.numeric, simplify = c) [1] 1000 2000 3000 1000 1000 See the gsubfn home page for more: http://gsubfn.googlecode.com On Sun, Jun 28, 2009 at 4:25 AM, Gregor Povh<gregorp...@yahoo.de> wrote: > > > Dear R users, > > apologies for this quite simple question. I've tried serverall approaches, > however, could not generate the desired result. > > I have a large data frame, which has several cathegories encoded as > character strings, for example. > > Name, income, gender, ... > ... "from 1000$ to 2000$" ... > ... "from 2000$ to 3000$" ... > ... "more than 3000$" ... > ... "from 1000$ to 2000$" ... > ... "from 1000$ to 2000$" ... > > > How can I transform this column into numeric values for the categories, for > example in somethins like this: > ... 1000 ... > ... 2000 ... > ... 3000 ... > ... 1000 ... > ... 1000 ... > > ______________________________________________ > R-help@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. > ______________________________________________ R-help@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.