IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

ACP sous R sur fichier excel et lignes d'erreurs en cascade


Sujet :

R

  1. #1
    Inactif  

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3 064
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 064
    Points : 4 605
    Points
    4 605
    Par défaut ACP sous R sur fichier excel et lignes d'erreurs en cascade
    Bonsoir

    Je dispose d'un fichier excel contenant la liste des 12 000 communes de France de plus de 100 bénéficiaires CAF (à titre indicatif le fichier en question est dispo sur le site de la CAF , voici le fichier que j'utilise : http://depositfiles.com/files/zuy1aktlo).

    Mon tableau fait donc 24 colonnes et 12 000 lignes. Une colonne avec le nom de la commune , et les 23 autres avec des indicateurs tous chiffrés ( nombre de personnes allocataires pour chaque ville , nombre de personnes bénéficiant du RSA , nombre de personnes bénéficiant des ARS, etc... ).

    Il est à noter que lorsqu'une ville ne contient pas un certain profil de bénéficiaire et bien les cellules restent vides (aucun chiffre).

    Je me pose la question suivante :

    - R peut-il réaliser une ACP / AFC ou ACM avec des valeurs manquantes dans un tableau? ( au passage j'ai tenté de remplacer les cellules vides par mais cela ne marche pas, mes cellules restent désespérément vides )

    Mon code est-il bon?

    Car quand je lance mon ACP sous R, chaque ligne n'est pas reconnue et j'ai droit à des dizaines de lignes d'erreur " erreur ligne de commande introuvable " ou encore " erreur chemin de données introuvable " .

    Voici le code :

    Code r : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    #librairie lecture fichier excel
    library(xlsReadWrite)
     
    #chargement des données dans la première feuille de calcul
    #première colonne = label des observations
    #les données sont dans la première feuille
    ville <- read.xls(file="c:/caf.xls",rowNames=T,sheet=1)
     
    #qqs vérifications
    #affichage
    print(ville)
    #statistiques descriptives
    summary(ville)
    #nuages de points
    pairs(ville)
     
    #partition des données (var. actives et illustratives)
    ville.actifs <- ville[,1:23]
     
     
    #nombre d'observations
    n <- nrow(ville.actifs)
    print(n)
     
    #*******************************
    # ACP avec la procédure princomp
    #*******************************
     
    #centrage et réduction des données --> cor = T
    #calcul des coordonnées factorielles --> scores = T
    acp.ville <- princomp(ville.actifs, cor = T, scores = T)
    #print
    print(acp.ville)
    #summary
    print(summary(acp.ville))
    #quelles les propriétés associées à l'objet
    print(attributes(acp.ville))
     
    #*************************
    #**** val. propres *******
    #*************************
     
    #obtenir les variances associées aux axes c.-à-d. les valeurs propres
    val.propres <- acp.ville$sdev^2
    print(val.propres)
     
    #scree plot (graphique des éboulis des valeurs propres)
    plot(1:6,val.propres,type="b",ylab="Valeurs propres",xlab="Composante",main="Scree plot")
     
    #intervalle de confiance des val.propres à 95% 
    val.basse <- val.propres * exp(-1.96 * sqrt(2.0/(n-1)))
    val.haute <- val.propres * exp(+1.96 * sqrt(2.0/(n-1)))
     
    #tableau
    tableau <- cbind(val.basse,val.propres,val.haute)
    colnames(tableau) <- c("B.Inf.","Val.","B.Sup")
    print(tableau,digits=3)
     
    #*************************************************
    #coordonnées des variables sur les axes factoriels
    #*************************************************
     
    #**** corrélation variables-facteurs ****
    c1 <- acp.ville$loadings[,1]*acp.ville$sdev[1]
    c2 <- acp.ville$loadings[,2]*acp.ville$sdev[2]
    #affichage
    correlation <- cbind(c1,c2)
    print(correlation,digits=2)
     
    #carrés de la corrélation
    print(correlation^2,digits=2)
     
    #cumul carrés de la corrélation
    print(t(apply(correlation^2,1,cumsum)),digits=2)
     
    #*** cercle des corrélations - variables actives ***
    plot(c1,c2,xlim=c(-1,+1),ylim=c(-1,+1),type="n")
    abline(h=0,v=0)
    text(c1,c2,labels=colnames(ville.actifs),cex=0.5)
    symbols(0,0,circles=1,inches=F,add=T)
     
    #***************************************************************
    #*** projection des individus dans le premier plan factoriel ***
    #***************************************************************
     
    #l'option "scores" demandé dans princomp est très important ici
    plot(acp.ville$scores[,1],acp.ville$scores[,2],type="n",xlab="Comp.1 - 74%",ylab="Comp.2 - 14%")
    abline(h=0,v=0)
    text(acp.ville$scores[,1],acp.ville$scores[,2],labels=rownames(ville.actifs),cex=0.75)
     
    #**************************************************************************************
    #*** représentation simultanée : individus x variables - cf. Lebart et al., pages 46-48
    #**************************************************************************************
    biplot(acp.ville,cex=0.75)
     
    #**************************************
    #*** contributions des individus actifs
    #**************************************
     
    #contributions à une composante - calcul pour les 2 premières composantes
    all.ctr <- NULL
    for (k in 1:2){all.ctr <- cbind(all.ctr,100.0*(1.0/n)*(acp.ville$scores[,k]^2)/(acp.ville$sdev[k]^2))}
    print(all.ctr)

    Merci d'avance.

  2. #2
    Membre actif Avatar de abysse
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 222
    Points : 294
    Points
    294
    Par défaut
    le code a l'air d'être bon, par contre pour réaliser l'ACP il ne faut pas de NA.
    soit tu moyennes tes colonnes pour replacer les NA
    soit tu élimines toutes les lignes comportant NA (na.omit)

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2011
    Messages : 32
    Points : 62
    Points
    62
    Par défaut
    Ou encore tu utilise le package MissMDA pour générer les données manquantes les plus vraisemblables.

    http://math.agrocampus-ouest.fr/info...pement/missMDA

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    3 064
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 064
    Points : 4 605
    Points
    4 605
    Par défaut
    Bonsoir,

    Après modification des cases vides j'ai relancé le programme pour avoir ceci comme résultat. R ne reconnait rien du tout et chaque ligne est une erreur selon le logiciel. Bref je suis démuni de toute solution, je ne sais pas aller plus loin et j'ai tout essayé au niveau des packages, rien ne fonctionne

    Voici le code :

    Code r : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
     
    > #librairie lecture fichier excel
    > library(xlsReadWrite)
    Erreur dans library(xlsReadWrite) : 
      aucun package nommé 'xlsReadWrite' n'est trouvé
    > 
    > #chargement des données dans la première feuille de calcul
    > #première colonne = label des observations
    > #les données sont dans la première feuille
    > ville <- read.xls(file="c:/caf.xls",rowNames=T,sheet=1)
    Erreur : impossible de trouver la fonction "read.xls"
    > 
    > #qqs vérifications
    > #affichage
    > print(ville)
    Erreur dans print(ville) : objet 'ville' introuvable
    > #statistiques descriptives
    > summary(ville)
    Erreur dans summary(ville) : objet 'ville' introuvable
    > #nuages de points
    > pairs(ville)
    Erreur dans pairs(ville) : objet 'ville' introuvable
    > 
    > #partition des données (var. actives et illustratives)
    > ville.actifs <- ville[,1:23]
    Erreur : objet 'ville' introuvable
    > 
    > 
    > #nombre d'observations
    > n <- nrow(ville.actifs)
    Erreur dans nrow(ville.actifs) : objet 'ville.actifs' introuvable
    > print(n)
    Erreur dans print(n) : objet 'n' introuvable
    > 
    > #*******************************
    > # ACP avec la procédure princomp
    > #*******************************
    > 
    > #centrage et réduction des données --> cor = T
    > #calcul des coordonnées factorielles --> scores = T
    > acp.ville <- princomp(ville.actifs, cor = T, scores = T)
    Erreur dans princomp(ville.actifs, cor = T, scores = T) : 
      objet 'ville.actifs' introuvable
    > #print
    > print(acp.ville)
    Erreur dans print(acp.ville) : objet 'acp.ville' introuvable
    > #summary
    > print(summary(acp.ville))
    Erreur dans summary(acp.ville) : objet 'acp.ville' introuvable
    > #quelles les propriétés associées à l'objet
    > print(attributes(acp.ville))
    Erreur dans print(attributes(acp.ville)) : objet 'acp.ville' introuvable
    > 
    > #*************************
    > #**** val. propres *******
    > #*************************
    > 
    > #obtenir les variances associées aux axes c.-à-d. les valeurs propres
    > val.propres <- acp.ville$sdev^2
    Erreur : objet 'acp.ville' introuvable
    > print(val.propres)
    Erreur dans print(val.propres) : objet 'val.propres' introuvable
    > 
    > #scree plot (graphique des éboulis des valeurs propres)
    > plot(1:6,val.propres,type="b",ylab="Valeurs propres",xlab="Composante",main="Scree plot")
    Erreur dans xy.coords(x, y, xlabel, ylabel, log) : 
      objet 'val.propres' introuvable
    > 
    > #intervalle de confiance des val.propres à 95% 
    > val.basse <- val.propres * exp(-1.96 * sqrt(2.0/(n-1)))
    Erreur : objet 'val.propres' introuvable
    > val.haute <- val.propres * exp(+1.96 * sqrt(2.0/(n-1)))
    Erreur : objet 'val.propres' introuvable
    > 
    > #tableau
    > tableau <- cbind(val.basse,val.propres,val.haute)
    Erreur dans cbind(val.basse, val.propres, val.haute) : 
      objet 'val.basse' introuvable
    > colnames(tableau) <- c("B.Inf.","Val.","B.Sup")
    Erreur dans colnames(tableau) <- c("B.Inf.", "Val.", "B.Sup") : 
      objet 'tableau' introuvable
    > print(tableau,digits=3)
    Erreur dans print(tableau, digits = 3) : objet 'tableau' introuvable
    > 
    > #*************************************************
    > #coordonnées des variables sur les axes factoriels
    > #*************************************************
    > 
    > #**** corrélation variables-facteurs ****
    > c1 <- acp.ville$loadings[,1]*acp.ville$sdev[1]
    Erreur : objet 'acp.ville' introuvable
    > c2 <- acp.ville$loadings[,2]*acp.ville$sdev[2]
    Erreur : objet 'acp.ville' introuvable
    > #affichage
    > correlation <- cbind(c1,c2)
    Erreur dans cbind(c1, c2) : objet 'c1' introuvable
    > print(correlation,digits=2)
    Erreur dans print(correlation, digits = 2) : objet 'correlation' introuvable
    > 
    > #carrés de la corrélation
    > print(correlation^2,digits=2)
    Erreur dans print(correlation^2, digits = 2) : 
      objet 'correlation' introuvable
    > 
    > #cumul carrés de la corrélation
    > print(t(apply(correlation^2,1,cumsum)),digits=2)
    Erreur dans apply(correlation^2, 1, cumsum) : 
      objet 'correlation' introuvable
    > 
    > #*** cercle des corrélations - variables actives ***
    > plot(c1,c2,xlim=c(-1,+1),ylim=c(-1,+1),type="n")
    Erreur dans plot(c1, c2, xlim = c(-1, +1), ylim = c(-1, +1), type = "n") : 
      objet 'c1' introuvable
    > abline(h=0,v=0)
    Erreur dans int_abline(a = a, b = b, h = h, v = v, untf = untf, ...) : 
      plot.new n'a pas encore été appelé
    > text(c1,c2,labels=colnames(ville.actifs),cex=0.5)
    Erreur dans text(c1, c2, labels = colnames(ville.actifs), cex = 0.5) : 
      objet 'c1' introuvable
    > symbols(0,0,circles=1,inches=F,add=T)
    Erreur dans symbols(0, 0, circles = 1, inches = F, add = T) : 
      plot.new n'a pas encore été appelé
    > 
    > #***************************************************************
    > #*** projection des individus dans le premier plan factoriel ***
    > #***************************************************************
    > 
    > #l'option "scores" demandé dans princomp est très important ici
    > plot(acp.ville$scores[,1],acp.ville$scores[,2],type="n",xlab="Comp.1 - 74%",ylab="Comp.2 - 14%")
    Erreur dans plot(acp.ville$scores[, 1], acp.ville$scores[, 2], type = "n",  : 
      objet 'acp.ville' introuvable
    > abline(h=0,v=0)
    Erreur dans int_abline(a = a, b = b, h = h, v = v, untf = untf, ...) : 
      plot.new n'a pas encore été appelé
    > text(acp.ville$scores[,1],acp.ville$scores[,2],labels=rownames(ville.actifs),cex=0.75)
    Erreur dans text(acp.ville$scores[, 1], acp.ville$scores[, 2], labels = rownames(ville.actifs),  : 
      objet 'acp.ville' introuvable
    > 
    > #**************************************************************************************
    > #*** représentation simultanée : individus x variables - cf. Lebart et al., pages 46-48
    > #**************************************************************************************
    > biplot(acp.ville,cex=0.75)
    Erreur dans biplot(acp.ville, cex = 0.75) : objet 'acp.ville' introuvable
    > 
    > #**************************************
    > #*** contributions des individus actifs
    > #**************************************
    > 
    > #contributions à une composante - calcul pour les 2 premières composantes
    > all.ctr <- NULL
    > for (k in 1:2){all.ctr <- cbind(all.ctr,100.0*(1.0/n)*(acp.ville$scores[,k]^2)/(acp.ville$sdev[k]^2))}
    Erreur dans cbind(all.ctr, 100 * (1/n) * (acp.ville$scores[, k]^2)/(acp.ville$sdev[k]^2)) : 
      objet 'n' introuvable
    > print(all.ctr)

    Que puis-je faire, j'ai essayé tout ce qui était possible

    Merci d'avance de la lumière d'un âme charitable

  5. #5
    Membre averti
    Femme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 417
    Points
    417
    Par défaut
    Bonjour,

    R ne trouve pas le package: êtes-vous sûr de l'avoir installé?

    Vous pouvez le faire sur la page du CRAN:
    http://cran.r-project.org/web/packag...ite/index.html

    Bonne journée

Discussions similaires

  1. Tracé graphique sur fichier excel depuis vba access
    Par kdestine dans le forum VBA Access
    Réponses: 0
    Dernier message: 26/09/2007, 12h37
  2. Horloge sur fichier Excel
    Par Micky58 dans le forum Excel
    Réponses: 5
    Dernier message: 23/04/2007, 19h40
  3. Requête sur fichier EXCEL
    Par christian51 dans le forum HyperFileSQL
    Réponses: 1
    Dernier message: 11/04/2007, 19h08
  4. Motifs de cellule sur fichier Excel sur Internet
    Par wanou44 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/07/2006, 08h53
  5. import gros fichier excel (>17000 lignes)
    Par samuelsiffert dans le forum Access
    Réponses: 12
    Dernier message: 05/07/2006, 08h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo