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

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : novembre 2006
    Messages : 52
    Points : 44
    Points
    44

    Par défaut Erreur : Error in .jcall

    Bonjour,

    Je souhaite générer plusieurs tables automatiquement. Pour se faire, j'ai écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (i in 1:(nrow(liste_epci))){write.xlsx(subset(exp_commune , exp_commune$EPCI == liste_epci$EPCI[i]), sheetName=liste_epci$EPCI[i], file="Z://base_test.xlsx", row.names = FALSE, append=TRUE)}
    la table liste_epci contient une seule variable (EPCI) correspondant à des codes.
    la table exp_commune contient 20 variables dont EPCI également.
    les variables EPCI sont au même format : caractère.
    La variable EPCI a deux objectifs : nommer les tables et filtrer la table exp_commune.

    J'obtiens le message d'erreur suivant :

    Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, :
    java.lang.OutOfMemoryError: Java heap space


    Quelqu'un a-t-il déjà rencontré ce problème ? y-a-t-il une solution ?

    D'avance merci

  2. #2
    Membre actif
    Homme Profil pro
    Data scientist
    Inscrit en
    février 2017
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data scientist
    Secteur : Conseil

    Informations forums :
    Inscription : février 2017
    Messages : 102
    Points : 200
    Points
    200

    Par défaut

    Bonjour,

    Essaye d'ajouter un as.character() au nom de ta feuille.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : novembre 2006
    Messages : 52
    Points : 44
    Points
    44

    Par défaut

    Toujours le même message...

  4. #4
    Membre actif
    Homme Profil pro
    Data scientist
    Inscrit en
    février 2017
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data scientist
    Secteur : Conseil

    Informations forums :
    Inscription : février 2017
    Messages : 102
    Points : 200
    Points
    200

    Par défaut

    Essaye plutôt celui là.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    for (i in 1:(nrow(liste_epci)))
      {write.xlsx2(subset(exp_commune , exp_commune$EPCI == liste_epci$EPCI[i]),
                                               sheetName=as.character(liste_epci$EPCI[i]), 
                                               file=paste("Z://base_test" , liste_epci$EPCI[i] , ".xlsx" , sep = "" ) , 
                  row.names = FALSE)}

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : novembre 2006
    Messages : 52
    Points : 44
    Points
    44

    Par défaut

    Bonjour,

    Désolé pour la réponse un peu tardive.

    J'ai de nouveau essayé avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    for (i in 1:(nrow(liste_epci))){write.xlsx(subset(exp_commune , exp_commune$EPCI == liste_epci$EPCI[i]), sheetName=liste_epci$EPCI[i], file="Z://base_test.xlsx", row.names = FALSE, append=TRUE)}
    pour obtenir le message d'erreur suivant :

    Error in .jcall("RJavaTools", "Ljava/lang/Object;", "invokeMethod", cl, :
    java.lang.OutOfMemoryError: Java heap space


    Mais... j'ai quand même un résultat encourageant. J'ai deux feuilles générées (sur 16) :

    Nom : Capture.JPG
Affichages : 28
Taille : 27,6 Ko

    Je soupçonne un décalage entre la rapidité d'exécution du code et la lenteur d'exportation des données vers xls... possible, non ?

    Bonne journée,

  6. #6
    Membre actif
    Homme Profil pro
    Data scientist
    Inscrit en
    février 2017
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data scientist
    Secteur : Conseil

    Informations forums :
    Inscription : février 2017
    Messages : 102
    Points : 200
    Points
    200

    Par défaut

    Bonjour,

    Désolé pour le dernier message. Le Code proposé c'est pour générer plusieurs fichier mais pas pour créer plusieurs feuilles dans un même fichier. Je vais regarder.

    Cordialement,

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : novembre 2006
    Messages : 52
    Points : 44
    Points
    44

    Par défaut

    OK pas de soucis

    il y bien cette méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    write.xlsx(subset(exp_commune, exp_commune$EPCI == 200033025), sheetName=200033025, file="Z://base_test.xlsx", row.names = FALSE, append=TRUE) 
    write.xlsx(subset(exp_commune, exp_commune$EPCI == 200034718), sheetName=200034718, file="Z://base_test.xlsx", row.names = FALSE, append=TRUE) 
    write.xlsx(subset(exp_commune, exp_commune$EPCI == 200036465), sheetName=200036465, file="Z://base_test.xlsx", row.names = FALSE, append=TRUE) 
    ...
    autant de lignes que de codes mais bon...

  8. #8
    Membre actif
    Homme Profil pro
    Data scientist
    Inscrit en
    février 2017
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Data scientist
    Secteur : Conseil

    Informations forums :
    Inscription : février 2017
    Messages : 102
    Points : 200
    Points
    200

    Par défaut

    Bonjour,

    Ce Code marche chez moi. Essaye de mettre à jour Java et d'iinstaller le package xlsxjars si c'est pas installer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    library(xlsxjars)
    library(xlsx)
    write.xlsx2( subset(X3 , X3$MSSubClass == liste_epci$EPCI[i]),
                 file = "Z://base_test.xlsx",
                 sheetName = as.character(liste_epci$EPCI[i]),
                 row.names = F,append = T)

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    novembre 2006
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : novembre 2006
    Messages : 52
    Points : 44
    Points
    44

    Par défaut

    Bonjour,

    J'ai modifié un élément dans la ligne de code. J'ai remplacé xlsx par xls. Et là... Ô miracle : çà fonctionne !

    En tout cas, merci pour ton aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur error LNK2005: _main
    Par raphaelfargeon dans le forum Windows
    Réponses: 3
    Dernier message: 16/10/2008, 14h40
  2. erreur : error '800a01c2'
    Par veriecherie dans le forum ASP
    Réponses: 3
    Dernier message: 04/08/2008, 10h47
  3. Message d`erreur " error:cannot read : src/main/org/pache/tools/bzip2/*.java "
    Par wiss20000 dans le forum RedHat / CentOS / Fedora
    Réponses: 0
    Dernier message: 09/11/2007, 16h36
  4. Réponses: 0
    Dernier message: 12/10/2007, 18h36
  5. Erreur : Error while trying to write to file
    Par WebPac dans le forum Installation
    Réponses: 11
    Dernier message: 19/05/2006, 23h23

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