Suite de chaîne sur plusieurs lignes, aucun caractère de nouvelle ligne
Suis en utilisant le RODBC de la bibliothèque d'importer des données dans R. j'ai une longue requête que je veux pour passer une variable, un peu comme cette pour l'utilisateur.
Problème est que la R interprète les espaces/retours chariot dans ma requête comme un retour à la ligne '\n'
.
La solution retenue pour cette question suggère tout simplement de briser le texte en morceaux puis paste()
ensemble - ce qui fonctionne, mais, idéalement, j'aimerais garder les espaces intacts, - rend plus facile à tester/vérifier le comportement de la requête dans la base de données avant de le coller dans R.
Dans d'autres langues, je suis familier avec il y a un simple caractère de continuation de ligne - en effet, plusieurs des commentaires sur la accepté de répondre sont à la recherche d'une approche similaire à python \
.
J'ai trouvé un côté pour une solution de contournement à l'aide de strwrap
profond dans les entrailles d'un R de listes de discussion, donc dans l'intérêt de faire de l'internet mieux, je vais le poster ici. Cependant, si quelqu'un peut le point, en direction d'un plus élégant/solution simple, je serai heureux d'accepter votre réponse.
source d'informationauteur Andrew
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas si vous trouverez ce utile ou pas, mais j'ai finalement évolué vers le maintien de mon SQL séparées de ma R scripts. En gardant la requête dans mon script R, à l'exception de très très courts, je trouve devient illisible, et très rapidement.
Ces jours-ci, j'ai tendance à garder les requêtes qui sont plus qu'une simple ligne dans leur propre .fichier sql. Alors je peux rester belle et en forme et lisible dans un bon éditeur de texte pour les lire dans R par quelque chose comme ceci:
Pour la liaison des paramètres dans les requêtes, j'ai juste garder un
%s
où le paramètre ira dans le .fichier sql, puis ajouter dans les paramètres R à l'aide desprintf
.J'ai été beaucoup plus heureux de cette façon, que j'ai découvert que d'encombrer mon R scripts avec vraiment long
paste
états et de plusieurs lignes de caractères des objets était de faire mon code très difficile à lire.R
strwrap
va détruire les espaces, y compris les caractères de saut de ligne, par le la documentation.Essentiellement, vous pouvez obtenir le comportement désiré en laissant R introduire des sauts de ligne/saut de ligne
\n
s, puis, immédiatement après le décapage.Essayez d'utiliser sprintf pour obtenir la substitution de la variable, puis en remplaçant tous les retours à la ligne et les espaces.
Voir ma réponse à une question similaire, pour plus de détails.