Estou tentando especificar as colClasses
opções na read.csv
função em R. Em meus dados, a primeira coluna "tempo" é basicamente um vetor de caracteres, enquanto o resto das colunas são numéricas.
data <- read.csv("test.csv", comment.char="" ,
colClasses=c(time="character", "numeric"),
strip.white=FALSE)
No comando acima, gostaria que R lesse na coluna "hora" como "caractere" e o resto como numérico. Embora a variável "data" tenha obtido o resultado correto após a conclusão do comando, R retornou os seguintes avisos. Estou me perguntando como posso corrigir esses avisos?
Warning messages:
1: In read.table(file = file, header = header, sep = sep, quote = quote, :
not all columns named in 'colClasses' exist
2: In tmp[i[i > 0L]] <- colClasses :
number of items to replace is not a multiple of replacement length
Derek
read.table
.Você pode especificar o colClasse para apenas uma coluna.
Portanto, em seu exemplo, você deve usar:
fonte
Supondo que sua coluna 'tempo' tenha pelo menos uma observação com um caractere não numérico e todas as outras colunas tenham apenas números, então o padrão de 'read.csv será ler em' tempo 'como um' fator 'e todo o resto as colunas como 'numéricas'. Portanto, definir 'stringsAsFactors = F' terá o mesmo resultado que definir 'colClasses' manualmente, ou seja,
fonte
Se quiser se referir a nomes do cabeçalho em vez de números de coluna, você pode usar algo assim:
fonte
Para várias colunas datetime sem cabeçalho e muitas colunas, digamos que meus campos datetime estão nas colunas 36 e 38 e eu quero que eles sejam lidos como campos de caracteres:
fonte
Eu sei que o OP perguntou sobre a
utils::read.csv
função, mas deixa eu dar uma resposta para esses que vêm aqui pesquisando como fazer usandoreadr::read_csv
desde o tidyverse.Isso deve definir o tipo padrão para todas as colunas como caractere , enquanto o tempo seria analisado como inteiro.
fonte
Se combinarmos com o que @Hendy e @Oddysseus Ithaca contribuíram, ficamos mais limpos e com um pedaço de código mais geral (isto é, adaptável?).
fonte