errore in strsplit quando si tenta di separare con una virgola

Ho il vettore

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

e voglio separarli con la virgola per eventualmente fare un elenco di tali valori

Cercato:

strsplit(length, ",") 

ma continuo a ricevere il messaggio di errore

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

OriginaleL’autore Nazrath10R | 2014-09-29

2 Replies
  1. 11

    Tuo “lunghezza” l’oggetto è un factor:

    Come indica il messaggio di errore, strsplit si aspetta un carattere vettoriale come input.

    Provare:

    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"

    OriginaleL’autore A5C1D2H2I1M1N2O1R2T1

  2. 1

    Si potrebbe anche usare: (x da @Ananda Mahto post)

     library(stringr)
     str_split(x, ",")
     #[[1]]
     # [1] "1" "2"
    
     #[[2]]
     #[1] "3" "4"
    
     #[[3]]
     #[1] "5" "6"

    O

      str_extract_all(x, "[0-9]+")

    O

     library(stringi)
     stri_extract_all_regex(x, "[0-9]+")

    OriginaleL’autore akrun

Lascia un commento