Ecco un paio di idee
scan(text="1,2,3,", sep=",", quiet=TRUE)
#[1] 1 2 3 NA
unlist(read.csv(text="1,2,3,", header=FALSE), use.names=FALSE)
#[1] 1 2 3 NA
Quei entrambi i vettori di ritorno interi. Puoi avvolgere as.character
intorno a uno di loro per ottenere il risultato esatto si mostra nella Domanda:
as.character(scan(text="1,2,3,", sep=",", quiet=TRUE))
#[1] "1" "2" "3" NA
In alternativa, è possibile specificare what="character"
in scan
, o colClasses="character"
in read.csv
per l'uscita leggermente diverso
scan(text="1,2,3,", sep=",", quiet=TRUE, what="character")
#[1] "1" "2" "3" ""
unlist(read.csv(text="1,2,3,", header=FALSE, colClasses="character"), use.names=FALSE)
#[1] "1" "2" "3" ""
È inoltre possibile specificare insieme a colClasses="character"
unlist(read.csv(text="1,2,3,", header=FALSE, colClasses="character", na.strings=""),
use.names=FALSE)
#[1] "1" "2" "3" NA
'stringr' è lento, dovresti usare 'stringi' :) –
@silvaran sei completamente corretto, ho solo preso coscienza di' stringi' dopo averlo scritto. (Come diamine stare al di sopra del quale -ultimo-più grande-pacchetto in R?) – smci