R ne reconnait pas une colonne comme étant numérique

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Quinot Lorraine
Messages : 7
Enregistré le : 19 Oct 2017, 12:27

R ne reconnait pas une colonne comme étant numérique

Messagepar Quinot Lorraine » 19 Oct 2017, 12:55

Bonjour,
Je dois réaliser une anova afin de vérifier si la ceinture végétale à une influence sur la hauteur de végétation. Cependant, R ne reconnait pas que ma colonne "Hauteur.max" comme étant numérique. J'ai vérifié toutes les virgules des nombre et les ai remplacé par des points. Voici mon script pour charger le fichier (sachant que j'arrive à réaliser d'autres anova sur d'autres colonne de ce fichier).
etang1=read.csv("Sortie étang Richesse et diversité.csv",h=T,sep=";",dec=".",na.strings="NA")
summary(etang1)
C'est en faisant le summary que je vois mon problème.

Alexandre Dangléant
Messages : 270
Enregistré le : 30 Mar 2010, 14:38

Re: R ne reconnait pas une colonne comme étant numérique

Messagepar Alexandre Dangléant » 19 Oct 2017, 13:18

Bonjour,

Il nous manque des informations pour répondre. Vous pouvez, par exemple, appeler votre colonne dans R et mettre le retour ici entre deux balises "code", ou encore faire un str de votre tableau (pas sûr que ça nous aide dans le cas présent...).

Par habitude, je dirais que, si les virgules ont été éliminées ou indiquées avec dec = "," lors de l'import, il s'agit souvent d'un espace entre les milliers inséré par ce vil Excel.

Cela étant, une petite astuce que j'utilise lorsque je ne sais pas quelle valeur pose problème consiste à faire un as.numeric de ma colonne. Généralement, si par défaut R considère la variable comme du texte, c'est donc qu'au moins une valeur ne peut être convertie, ce qui donne un NA. Et donc je me sers de cela dans l'indexation pour trouver le vilain petit canard. En gros, ça donne :

Code : Tout sélectionner

tableau[is.na(as.numeric(tableau$variable)), ]

Cordialement

Quinot Lorraine
Messages : 7
Enregistré le : 19 Oct 2017, 12:27

Re: R ne reconnait pas une colonne comme étant numérique

Messagepar Quinot Lorraine » 19 Oct 2017, 16:58

Merci pour votre réponse,
Voici le message d'erreur affiché au sujet de la colonne. J'ai essayé de supprimer les lignes comportant les milliers mais cela n'a rien changé.

Code : Tout sélectionner

hauteur=aov(Hauteur.max~Cluster,data=etang1)
#Warning messages:
#1: In model.response(mf, "numeric") :
#  l'utilisation de type="numeric" avec une réponse de type facteur sera ignorée
#2: In Ops.factor(y, z$residuals) : ‘-’ not meaningful for factors


Cordialement
PS: je n'ai pas réussi à utiliser votre fonction elle m'indique le nom de chaque colonne:

Code : Tout sélectionner

etang1[is.na(as.numeric(etang1$Hauteur.max)), ]
 [1] n                        Hauteur.max              Distance               
 [4] Cluster                  Agrostis.stolonifera     Alisma.plantago.aquatica
 [7] Baldellia.ranunculoides  Betula.pubescens         Bidens.cernua           
[10] Bidens.tripartita        Carex.serotina           Carex.vesicaria         
[13] Carum.verticillatum      Cirsium.anglicum         Convolvulus.sepium     
[16] Eleocharis.multicaulis   Eleocharis.palustris     Frangula.alnus         
[19] Galium.palustre          Hedera.helix             Hydrocotyle.vulgaris   
[22] Iris.pseudacorus         Juncus.acutiflorus       Juncus.bufonius         
[25] Juncus.bulbosus          Juncus.conglomeratus     Juncus.effusus         
[28] Littorella.uniflora      Lycopus.europaeus        Lysimachia.vulgaris     
[31] Lythrum.salicaria        Mentha.aquatica          Mentha.arvensis         
[34] Molinia.caerulea         Phalaris.arundinacea     Polygonum.maculosa     
[37] Potamogeton.sp           Potentilla.anserina      Pteridium.aquilinum     
[40] Quercus.robur            Ranunculus.flammula      Ranunculus.peltatus     
[43] Salix.atrocinerea        Scirpus.fluitans         Scirpus.lacustris       
[46] Solanum.dulcamara        Ulex.europaeus           Ulex.minor             
[49] Eleocharis.acicularis    Senecio.jacobea          Elatine.hexandra       
[52] Hypochaeris.radicata     Prunella.vulgaris        Fagus.sylvatica         
[55] Taraxacum.officinale     Potentilla.sp            Cirsium.palustre       
[58] Rubus.fruticosus         Pinus.sylvestris         Betula.pendula         
[61] Gnaphalium.uliginosum    Carpinus.betulus         Rorippa.amphibia       
[64] Potentilla.erecta        Poa.annua                Chenopodium.sp         
[67] Cirsium.arvense          Salix.sp                 RS                     
[70] div                     
<0 lignes> (ou 'row.names' de longueur nulle)

Fred Santos
Messages : 233
Enregistré le : 11 Avr 2009, 10:00
Contact :

Re: R ne reconnait pas une colonne comme étant numérique

Messagepar Fred Santos » 24 Oct 2017, 08:34

Bonjour,

Ce qui est important est à la fin de la sortie :

Code : Tout sélectionner

<0 lignes> (ou 'row.names' de longueur nulle)

ce qui signifie qu'il n'y a visiblement aucune valeur non numérique dans cette colonne. Ce qui rend le warning que vous obtenez encore plus curieux.

Pourriez-vous montrer le résultat des instructions suivantes ?

Code : Tout sélectionner

etang1 = read.csv("Sortie étang Richesse et diversité.csv", header=TRUE, sep=";", dec=".", na.strings="NA")
summary(etang1[ , c(2,4)])
str(etang1[ , c(2,4)])

Quinot Lorraine
Messages : 7
Enregistré le : 19 Oct 2017, 12:27

Re: R ne reconnait pas une colonne comme étant numérique

Messagepar Quinot Lorraine » 24 Oct 2017, 12:30

Bonjour,
merci de votre réponse mais j'ai pu régler mon problème en reprenant le fichier d'origine (sans mes modifications ultérieures). Même si je n'avais pas changer cette colonne, je n'ai pas eu de problème et j'ai pu réaliser mon anova.
Cordialement.


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité