2010-04-08 5 views
3

J'ai une question à propos de l'utilisation de sqlSave. Comment R mappe-t-il les données RODBC dans le bloc de données aux colonnes de la table de base de données? Si j'ai une table avec les colonnes X et Y et une trame de données avec les colonnes X et Y, RODBC met X dans X et Y dans Y (j'ai découvert par chemin-et-erreur). Mais je peux dire explicitement à R comment mapper des colonnes data.frame aux colonnes de table de base de données, comme mettre A dans X et B dans Y.RODBC sqlSave() et mappage des noms de colonnes

Je suis plutôt nouveau à R et pense que le manuel de RODBC est un peu cryptique. Je ne peux pas non plus trouver un exemple sur internet.

Répondre

2

Je suis maintenant faire de cette façon (peut-être c'est aussi ce que vous vouliez dire):

colnames(dat) <- c("A", "B") 
sqlSave(channel, dat, tablename = "tblTest", rownames=FALSE, append=TRUE) 

Il travaille pour moi. Merci de votre aide.

+0

Cela modifie l'objet avant de l'enregistrer, ce qui n'est pas ce que vous avez demandé. –

+0

Bien sûr, mais l'objet altéré est seulement temporairement, donc ce n'est pas un problème – waanders

1

Vous devriez trouver les bons manuels R d'une grande aide lorsque vous commencerez à explorer R, et ses installations d'aide sont très bien aussi.

Si vous commencez avec

help(sqlSave) 

vous verrez l'argument colNames. Fournir un vecteur c("A", "B") enfilez la première colonne data.frame dans une colonne de table A, etc.

+0

J'utilise http://cran.r-project.org/web/packages/RODBC/RODBC.pdf. Mais ce document parle de l'argument "colnames" comme étant "logique: sauver les noms de colonne comme première ligne de la table?", Pas comme un vecteur fournissant une colonneNAMES – waanders

+2

Tapez 'help (help)' dans R/ –

+1

Toujours l'argument "colnames" est un – waanders

1

J'ai de gros problèmes en utilisant sqlSave avec une banque de données IBM DB2. J'essaie de l'éviter en utilisant sqlQuery à la place pour créer la table avec la mise en forme correcte et puis utiliser sqlSave avec append=T pour forcer ma table R dans la table de base de données. Cela résout beaucoup de problèmes tels que les formats de date et les nombres à virgule flottante (au lieu de doubles). Que voulez-vous dire par «ses centres d'aide»?

Questions connexes