comma separated string to list in r

umbersar picture umbersar · Jun 17, 2014 · Viewed 33.2k times · Source

I have a comma separated string in R:-

"a,b,c"

I want to convert it into a list which looks like this:

list("a","b","c")

How do I do that?

Answer

A5C1D2H2I1M1N2O1R2T1 picture A5C1D2H2I1M1N2O1R2T1 · Jun 17, 2014

This is a basic strsplit problem:

x <- "a,b,c"
as.list(strsplit(x, ",")[[1]])
# [[1]]
# [1] "a"
# 
# [[2]]
# [1] "b"
# 
# [[3]]
# [1] "c"

strsplit creates a list and the [[1]] selects the first list item (we only have one, in this case). The result at this point is just a regular character vector, but you want it in a list, so you can use as.list to get the form you want.

With the same logic you can use el:

as.list(el(strsplit(x, ",")))
# [[1]]
# [1] "a"
# 
# [[2]]
# [1] "b"
# 
# [[3]]
# [1] "c"

Or scan:

as.list(scan(text = x, what = "", sep = ","))
# Read 3 items
# [[1]]
# [1] "a"
# 
# [[2]]
# [1] "b"
# 
# [[3]]
# [1] "c"