Ne peut pas dessiner L'histogramme, "x" doit être numérique

j'ai un fichier de données avec ce format:

Weight    Industry Type  
251,787   Kellogg  h  
253,9601  Kellogg  a  
256,0758  Kellogg  h  
....

je lis les données et j'essaie de dessiner un histogramme avec ces commandes:

 ce <- read.table("file.txt", header = TRUE)

 we = ce[,1]
 in = ce[,2]
 ty = ce[,3]

hist(we)

Mais j'obtiens cette erreur:

Erreur fr hist.par défaut(nous) : "x" doit être numérique.

Que dois-je faire pour dessiner des histogrammes pour mes trois variables ?

21
demandé sur zx8754 2010-02-28 01:38:35

3 réponses

à cause du séparateur de milliers, les données auront été lues comme 'non numériques'. Donc vous devez le convertir:

 we <- gsub(",", "", we)   # remove comma
 we <- as.numeric(we)      # turn into numbers

et maintenant vous pouvez le faire

 hist(we)

et autres opérations numériques.

15
répondu Dirk Eddelbuettel 2010-02-27 23:06:33

notez que vous pouvez aussi bien tracer directement à partir de ce (après suppression de la virgule) en utilisant le nom de la colonne :

hist(ce$Weight)

(au lieu d'utiliser hist(ce[1]), qui conduirait à la même "doit être numérique" erreur.)

cela fonctionne aussi pour un résultat de requête de base de données.

3
répondu Skippy le Grand Gourou 2012-05-25 18:20:10

décembre argument set "," comme point décimal en ajoutant:

 ce <- read.table("file.txt", header = TRUE, dec = ",")
3
répondu U. Hjort 2018-03-21 13:13:04