J'essaie de spécifier les colClasses
options de la read.csv
fonction dans R. Dans mes données, la première colonne «temps» est essentiellement un vecteur de caractères tandis que le reste des colonnes est numérique.
data <- read.csv("test.csv", comment.char="" ,
colClasses=c(time="character", "numeric"),
strip.white=FALSE)
Dans la commande ci-dessus, je voudrais que R lise dans la colonne «temps» comme «caractère» et le reste comme numérique. Bien que la variable "data" ait eu le résultat correct une fois la commande terminée, R a renvoyé les avertissements suivants. Je me demande comment je pourrais corriger ces avertissements?
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
.Vous pouvez spécifier la colClasse pour une seule colonne.
Donc, dans votre exemple, vous devez utiliser:
la source
En supposant que votre colonne 'time' a au moins une observation avec un caractère non numérique et que toutes vos autres colonnes n'ont que des nombres, alors la valeur par défaut de 'read.csv sera de lire dans' time 'comme un' facteur 'et tout le reste de les colonnes comme «numériques». Par conséquent, la définition de 'stringsAsFactors = F' aura le même résultat que la définition manuelle de 'colClasses', c'est-à-dire
la source
Si vous souhaitez faire référence à des noms de l'en-tête plutôt qu'à des numéros de colonne, vous pouvez utiliser quelque chose comme ceci:
la source
Pour plusieurs colonnes datetime sans en-tête et beaucoup de colonnes, disons que mes champs datetime sont dans les colonnes 36 et 38, et je veux qu'ils soient lus comme des champs de caractères:
la source
Je sais qu'OP a posé des questions sur la
utils::read.csv
fonction, mais permettez-moi de fournir une réponse pour ceux qui viennent ici pour savoir comment le faire en utilisantreadr::read_csv
le tidyverse.Cela devrait définir le type par défaut pour toutes les colonnes en tant que caractère , tandis que le temps serait analysé comme un entier.
la source
Si nous combinons ce que @Hendy et @Oddysseus Ithaca ont contribué, nous obtenons un morceau de code plus propre et plus général (c'est-à-dire adaptable?).
la source