Try this: newData <- sapply(numdat, function(x)lapply(strsplit(as.character(x), '-'), function(.x)mean(as.numeric(.x))))
On Mon, May 17, 2010 at 3:29 PM, Juliet Hannah <juliet.han...@gmail.com>wrote: > I am recoding some data. Many values that should be 1.5 are recorded > as 1-2. Some example data and my solution is below. I am curious about > better approaches or any other suggestions. Thanks! > > # example input data > > myData <- read.table(textConnection("id, v1, v2, v3 > a,1,2,3 > b,1-2,,3-4 > c,,3,4"),header=TRUE,sep=",") > closeAllConnections() > > # the first column is IDs so remove that > > numdat <- myData[,-1] > > # function to change dashes: 1-2 to 1.5 > > myrecode <- function(mycol) > { > newcol <- mycol > newcol <- gsub("1-2","1.5",newcol) > newcol <- gsub("2-3","2.5",newcol) > newcol <- gsub("3-4","3.5",newcol) > newcol <- as.numeric(newcol) > > } > > newData <- data.frame(do.call(cbind,lapply(numdat,myrecode))) > > ______________________________________________ > 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. > -- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O [[alternative HTML version deleted]]
______________________________________________ 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.