[R] Converting a string vector with names to a numeric vector with names

Peter Langfelder peter.langfelder at gmail.com
Thu Mar 1 22:25:58 CET 2012


On Thu, Mar 1, 2012 at 12:28 PM, John C Nash <nashjc at uottawa.ca> wrote:
> Not paying close attention to detail, I entered the equivalent of
>
> pstr<-c("b1=200", "b2=50", "b3=0.3")
>
> when what I wanted was
>
> pnum<-c(b1=200, b2=50, b3=0.3)
>
> There was a list thread in 2010 that shows how to deal with un-named vectors, but the same
> lapply solution doesn't seem to work here i.e.,
>
> pnum<-lapply(pstr, as.numeric)
>
> or similar vapply version. The names and = signs seem to mess things up.
>
> This is clearly not critical, but it would be nice to know an appropriate transformation.

Here's one:

split = sapply(strsplit(pstr, split = "="), I);

pnum = as.numeric(split[2, ]);
names(pnum) = split[1, ];

> pnum
   b1    b2    b3
200.0  50.0   0.3

HTH

Peter



More information about the R-help mailing list