Hi,
Suppose I have
x = parse(text = "
{y=50+50+50#'asfasf'
}
")
now x is an expression with some src attributes.
> x
expression({y=50+50+50#'asfasf'
})
attr(,"srcfile")
<text>
attr(,"wholeSrcref")
{y=50+50+50#'asfasf'
}
My question is, how can I get my string back (the string passed to
parse() as the text argument)?
> as.character(x)
[1] "{"
as.character() only returns "{".
> as.character(expression({1}))
[1] "{"> as.character(expression("1","2+3"))
[1] "1" "2+3"
Thanks a lot!
Regards,
Yihui
--
Yihui Xie <xieyihui at gmail.com>
Phone: 515-294-2465 Web: http://yihui.name
Department of Statistics, Iowa State University
2215 Snedecor Hall, Ames, IA
On Jan 5, 2011, at 4:47 PM, Yihui Xie wrote:> Hi, > > Suppose I have > > x = parse(text = " > {y=50+50+50#'asfasf' > } > ") > > now x is an expression with some src attributes. > >> x > expression({y=50+50+50#'asfasf' > }) > attr(,"srcfile") > <text> > attr(,"wholeSrcref") > > {y=50+50+50#'asfasf' > } > > My question is, how can I get my string back (the string passed to > parse() as the text argument)?> attr(x, "wholeSrcref") {y=50+50+50#'asfasf' } -- David.> >> as.character(x) > [1] "{" > > as.character() only returns "{". > >> as.character(expression({1})) > [1] "{" >> as.character(expression("1","2+3")) > [1] "1" "2+3" > > > Thanks a lot! > > Regards, > Yihui > -- > Yihui Xie <xieyihui at gmail.com> > Phone: 515-294-2465 Web: http://yihui.name > Department of Statistics, Iowa State University > 2215 Snedecor Hall, Ames, IA > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.David Winsemius, MD West Hartford, CT
On 11-01-05 4:47 PM, Yihui Xie wrote:
> Hi,
>
> Suppose I have
>
> x = parse(text = "
> {y=50+50+50#'asfasf'
> }
> ")
>
> now x is an expression with some src attributes.
>
>> x
> expression({y=50+50+50#'asfasf'
> })
> attr(,"srcfile")
> <text>
> attr(,"wholeSrcref")
>
> {y=50+50+50#'asfasf'
> }
>
> My question is, how can I get my string back (the string passed to
> parse() as the text argument)?
You can use
as.character(attr(x, "wholeSrcref"))
If length(x) > 1, you can get the parts corresponding to each expression
within it as
for (i in 1:length(x)) {
print (as.character(attr(x, "srcref")[[i]]))
}
but this leaves off comments and whitespace that are not embedded within
the expressions the way your comment is.
Duncan Murdoch
>
>> as.character(x)
> [1] "{"
>
> as.character() only returns "{".
>
>> as.character(expression({1}))
> [1] "{"
>> as.character(expression("1","2+3"))
> [1] "1" "2+3"
>
>
> Thanks a lot!
>
> Regards,
> Yihui
> --
> Yihui Xie<xieyihui at gmail.com>
> Phone: 515-294-2465 Web: http://yihui.name
> Department of Statistics, Iowa State University
> 2215 Snedecor Hall, Ames, IA
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.