I did a quick benchmark on Jake's code using sapply and vapply(strsplit(x, split = ","), "[", "", 2) with 100,000 replications. Ended up with sapply being 1.637 relative to the vapply base. As least for simple vectors (character, numeric, etc.), it's pretty easy to specify the return object. I haven't dealt with matrices and frames yet, myself. Thought I'd throw this out there for consideration. If you want optimal speed and you're returning a simple data type (simple in R terms), you might want to consider using vapply, instead.
In this case, an unlist(lapply(...)) produces the same result with a relative 1.017, so at least the vapply approach is better semantically and in speed, if only slightly, to the unlist(lapply(...)) approach that I would appeal to for speed.
In this case, an unlist(lapply(...)) produces the same result with a relative 1.017, so at least the vapply approach is better semantically and in speed, if only slightly, to the unlist(lapply(...)) approach that I would appeal to for speed.