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.

Reply via email to