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 :

Langage SQL et R


Sujet :

R

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 34
    Points : 44
    Points
    44
    Par défaut Langage SQL et R
    Bonjour à tous et à toutes,

    J'ai crée un programme qui me remplit un data.frame, et ce que j'aimerais c'est pouvoir insérer chacune des 5 lignes de ce data.frame dans une table SQL.

    Pour cela j'utilise le package RSQLite, et voici un bout de mon code :

    # On renvoie la matrice des résultats
    d=data.frame(p=rep(ch,5),prenom=prenom[pos],nom=nom[pos],probabilite)

    # On ordonne de la probabilité la plus forte à la plus faible
    d=d[order(d[,4],decreasing=TRUE),]
    d[,2]=as.character(d[,2])
    d[,3]=as.character(d[,3])
    sql="insert into p_i(p,prenom,nom,probabilite) values('%ch','%d[1,2]','%d[1,3]',%d[1,4])"
    r=dbSendQuery(con,sql)
    Le problème c'est que j'ai toujours une erreur, quelle que soit la syntaxe d'écriture de cette ligne :

    sql="insert into p_i(p,prenom,nom,probabilite) values('%ch','%d[1,2]','%d[1,3]',%d[1,4])"
    r=dbSendQuery(con,sql)
    Erreur dans sqliteExecStatement(con, statement, bind.data) :
    Voilà je suis un peu perdu depuis plusieurs jours et j'espère que des personnes pourront m'aider à comprendre mon problème.

    Cordialement M. Favre

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 208
    Points : 461
    Points
    461
    Par défaut
    Salut

    Qu'est ce que tu as mis comme paramètre de connection dans SendQuery?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur dans sqliteExecStatement(con, statement, bind.data) :
    ???
    Met au moins le message d'erreur franchement XD

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 34
    Points : 44
    Points
    44
    Par défaut
    # On charge le nom de la base de données
    db="mabase.db"

    # On définit le pilote
    drv=dbDriver("SQLite")

    # Ouverture de la connexion à la base de données
    con=dbConnect(drv,dbname=db)
    C'est tout pour l'erreur je n'ai rien de plus.
    r=dbSendQuery(con,sql)
    Erreur dans sqliteExecStatement(conn, statement, ...) :

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 208
    Points : 461
    Points
    461
    Par défaut
    Ok autant pour moi! (pas très informatif ce message ^^ )

    Difficile de t'aider du coup.

    Ne pourrais tu pas convertir ta bdd sql en Rdata pour pouvoir y insérer tes lignes avec du code R normal sans passer par des requètes sql? (avec dbreadtable)
    (et ensuite tu la reconvertir en table sql)

    Ca me parait plus sage, mais après peut être as tu des contraintes particulières?

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 34
    Points : 44
    Points
    44
    Par défaut
    La contrainte est qu'il faut que je ressorte une table SQL, que j'ai crée (réussit) et remplie (pas réussit ça...).

    Et par la suite le programme pourra être relancé pour compléter la table SQL

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Mars 2013
    Messages : 208
    Points : 461
    Points
    461
    Par défaut
    Ah en plus c'est toi qui la créé ta base au début!
    Bon ben dans ce cas tu fais tout en R en creeant et remplissant un data frame et seulement à la fin tu utilises dbBuildTable pour transformer ton dataframe en base sql.


    Pour modifier la base par la suite:

    1)dbReadTable pour transformer ta base sql en data frame
    2)Code R pour travailler tes données
    3)dbBuildTable pour remettre tout ca en sql

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 34
    Points : 44
    Points
    44
    Par défaut
    Et pour définir les contraintes sur la table après je fais comment?

    Car je vois pas ça, et c'est pour cela que j'ai pas choisi cette méthode au départ.

Discussions similaires

  1. Logiciel de mise en forme du langage SQL
    Par macben dans le forum Langage SQL
    Réponses: 5
    Dernier message: 02/01/2006, 15h21
  2. Langage SQL propore à chaque SGBD
    Par Pascal Jankowski dans le forum Bases de données
    Réponses: 4
    Dernier message: 12/03/2004, 09h16
  3. Cours, tutoriels, logiciels, F.A.Q,... pour le langage SQL
    Par Marc Lussac dans le forum Langage SQL
    Réponses: 0
    Dernier message: 04/04/2002, 10h21

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