I am not sure I clearly understand what you want, but getting the string
returned by your multi.line.paste() function is straightforward using
gsub():
gsub("\n", "", "
SELECT *
FROM estimates a, newtable b
WHERE a.Ticker=b.Ticker
AND a.Fiscal_Year=b.Fiscal_Year
AND a.EPS<>b.EPS
AND a.Date_Last_change-1.9>b.Date_Last_change
")
If you really want a custom function for that, then, define:
multi.line.paste <- function(str) gsub("\n", "", str)
Best,
Philippe Grosjean
Lapointe, Pierre wrote:> Here's my contribution to R.
>
> When R interacts with external programs (MySQL, cURL, etc.), it often
> requires a pasted string that is sent to these programs. For readability
> reasons, it is often preferable to have complex commands (SQL for example)
> spread on several lines. However, the normal paste function requires to add
> additional ' ", ' at the end of each line and another '
" ' at the beginning
> of each new line. It becomes fastidious for long commands.
>
> Multi-line paste function:
>
> multi.line.paste <-function (..., sep = " ", collapse = NULL)
> {
> args <- list(...)
> if (length(args) == 0)
> if (length(collapse) == 0)
> character(0)
> else ""
> else {
> for (i in seq(along = args)) args[[i]] <-
> gsub("\n","",as.character(args[[i]]))
> .Internal(paste(args, sep, collapse))
> }
> }
>
> Example with a SQL command on multiple lines:
>
> multi.line.paste("
> SELECT *
> FROM estimates a, newtable b
> WHERE a.Ticker=b.Ticker
> AND a.Fiscal_Year=b.Fiscal_Year
> AND a.EPS<>b.EPS
> AND a.Date_Last_change-1.9>b.Date_Last_change
> ")
>
> Regards,
>
> Pierre
>
>
> **************************************************
> AVIS DE NON-RESPONSABILITE: Ce document transmis par courrie...{{dropped}}
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
http://www.R-project.org/posting-guide.html
>
>