On Mon, Nov 23, 2015 at 12:20:53PM -0800, Sam Albers wrote: > Hello, > > I have a problem to which I am certain grep or gsub or that family of > functions are the solution. However, I just can't seem to wrap my mind > around exactly how. I have a dataframe below that has the dimensions > of a net. I am given the data is the "W X H" format. For calculations > I'll like to have each number as a separated column. I have been using > ifelse(). However that seems like a poor solution to this problem > especially once dataframes get larger and larger. > > So my question is, can anyone describe a way to extract the number > from the variable y below is the example? I had also tried substr() > but that fall apart with the 2.5 x 2.5 net. > > > Thanks in advance! > > Sam > > Example: > ##dataframe > df<-data.frame(x=rnorm(10), > y=c("7 x 3","7 x 3","7 x 3","7 x 3","7 x 3","2.5 x > 2.5","2.5 x 2.5","2.5 x 2.5","2.5 x 2.5","2.5 x 2.5")) > > > df$Width<-as.numeric(ifelse(df$y=="7 x 3","7","2.5")) > df$Height<-as.numeric(ifelse(df$y=="7 x 3","3","2.5")) > > > df$Width<-as.numeric(substr(df$y,5,5)) > df$Width<-as.numeric(substr(df$y,5,5)) > ....
Something like: > df$Height <- as.numeric(sub(' x .*$', '', df$y)) > df$Width <- as.numeric(sub('^.* x ', '', df$y)) > df x y Height Width 1 1.2118958 7 x 3 7.0 3.0 2 -0.3911277 7 x 3 7.0 3.0 3 -0.8933737 7 x 3 7.0 3.0 4 -0.6537011 7 x 3 7.0 3.0 5 2.6182771 7 x 3 7.0 3.0 6 0.9622942 2.5 x 2.5 2.5 2.5 7 1.2858848 2.5 x 2.5 2.5 2.5 8 1.0431044 2.5 x 2.5 2.5 2.5 9 -1.4957406 2.5 x 2.5 2.5 2.5 10 2.1751108 2.5 x 2.5 2.5 2.5 seems promising. Peace, david -- David H. Wolfskill r...@catwhisker.org Those who would murder in the name of God or prophet are blasphemous cowards. See http://www.catwhisker.org/~david/publickey.gpg for my public key.
signature.asc
Description: PGP signature
______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.