[R] unwanted as.integer

Sundar Dorai-Raj sundar.dorai-raj at PDF.COM
Fri Jul 30 19:13:25 CEST 2004



Jack Tanner wrote:

> Sundar Dorai-Raj wrote:
> 
>> Not sure about what sqlQuery is doing but you can wrap your return 
>> value in a eval(parse(text = x)) to evaluate the "as.integer(.)" 
>> string. As in,
>>
>> a <- eval(parse(text = a))
> 
> 
> This works, except it doesn't.
> 
>  > a <- sqlQuery(irrdb, "select count(field) from mytable where field=1")
>  > print(a)
>  count(field)
> 1            8
>  > paste(a)
> [1] "as.integer(8)"
>  > eval(parse(text=a))
> [1] 8
>  > paste(eval(parse(text=a)))
> [1] "8"
> 
> That's great, but...
>  > paste(list(eval(parse(text=a)), eval(parse(text=a))))
> [1] "as.integer(8)" "as.integer(8)"
> 
> Argh!!! What the hell is going on?
> 


I think you meant

paste(c(eval(parse(text=a)), eval(parse(text=a))))

or

do.call("paste", list(eval(parse(text=a)), eval(parse(text=a))))

Not sure which you want.

Or better yet, if `a' is a vector:

a <- c(a, a, a, a)
b <- lapply(a, function(x) eval(parse(text = x)))
# I seem to recall you needing to create an HTML table
do.call("paste", c(b, sep = "</td><td>"))
# or
paste(unlist(b), collapse = "</td><td>")

--sundar




More information about the R-help mailing list