Description: 'lapply' returns a list of the same length as 'X', each element of which is the result of applying 'FUN' to the corresponding element of 'X'.
I expect that when I do > lapply(vec,f) f would be called _once_ for each component of vec. this is not what I see: parse.num <- function (s) { cat("parse.num1\n"); str(s) s <- as.character(s) cat("parse.num2\n"); str(s) if (s == "N/A") return(s); as.numeric(gsub("M$","e6",gsub("B$","e9",s))); } > vec mcap 1 200.5B 2 19.1M 3 223.7B 4 888.0M 5 141.7B 6 273.5M 7 55.649B > str(vec) 'data.frame': 7 obs. of 1 variable: $ mcap: Factor w/ 7 levels "141.7B","19.1M",..: 3 2 4 7 1 5 6 > vec<-lapply(vec,parse.num) parse.num1 Factor w/ 7 levels "141.7B","19.1M",..: 3 2 4 7 1 5 6 parse.num2 chr [1:7] "200.5B" "19.1M" "223.7B" "888.0M" "141.7B" "273.5M" ... Warning message: In if (s == "N/A") return(s) : the condition has length > 1 and only the first element will be used i.e., somehow parse.num is called on the whole vector vec, not its components. what am I doing wrong? -- Sam Steingold (http://sds.podval.org/) on CentOS release 5.3 (Final) http://dhimmi.com http://mideasttruth.com http://truepeace.org http://camera.org http://memri.org http://palestinefacts.org http://iris.org.il Despite the raising cost of living, it remains quite popular. ______________________________________________ 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.