error in strsplit when trying to separate by a comma

Nazrath10R picture Nazrath10R · Sep 29, 2014 · Viewed 17.2k times · Source

I have the vector

length
# [1] 15,34, 12,24, 225,
# Levels: 12,24, 15,34, 225,

and I want to separate them by the comma to eventually make a list of these values

Tried:

strsplit(length, ",") 

but keep getting the error message

Error in strsplit(length, ",") : non-character argument

Answer

A5C1D2H2I1M1N2O1R2T1 picture A5C1D2H2I1M1N2O1R2T1 · Sep 29, 2014

Your "length" object is a factor:

As the error message indicates, strsplit expects a character vector as the input.

Try:

strsplit(as.character(length), ",") 

Demo

x <- factor(c("1,2", "3,4", "5,6"))
strsplit(x, ",")
# Error in strsplit(x, ",") : non-character argument
strsplit(as.character(x), ",")
# [[1]]
# [1] "1" "2"
# 
# [[2]]
# [1] "3" "4"
# 
# [[3]]
# [1] "5" "6"