I would leave off the as.character(). With it you get things like: > f <- rpart(Kyphosis ~ ., kyphosis[-3]) > as.list(f$call)$data kyphosis[-3] > as.character(as.list(f$call)$data) [1] "[" "kyphosis" "-3" Expressions like quote(kyphosis[-3]) are much easier to analyze as expressions that as vectors of character strings. E.g., you can use all.vars on an expression to see what variables are mentioned in it. When it is time to print the expression you may need to use deparse() to turn it into a readable vector of strings.
Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com ________________________________ From: Tal Galili [mailto:tal.gal...@gmail.com] Sent: Wednesday, January 26, 2011 11:35 AM To: Henrique Dallazuanna Cc: r-help@r-project.org; William Dunlap Subject: Re: [R] Extracting the terms from an rpart object Exactly what I needed Henrique, Thank you. ----------------Contact Details:------------------------------------------------------- Contact me: tal.gal...@gmail.com | 972-52-7275845 Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) | www.r-statistics.com (English) ---------------------------------------------------------------------------------------------- On Wed, Jan 26, 2011 at 8:26 PM, Henrique Dallazuanna <www...@gmail.com> wrote: Try this: as.character(as.list(fit1$call)$data) On Wed, Jan 26, 2011 at 4:12 PM, Tal Galili <tal.gal...@gmail.com> wrote: Another (similar) question, If I now want to know the name of the "data" argument used, is there an easy way for me to access it? I'm trying to use something like: eval(parse(text = all.vars(terms(fit1))[1])) Which (of course) wouldn't work, since the response variable is only available in the data used by rpart (specifically the "kyphosis" dataset) Thanks upfront. Tal ----------------Contact Details:------------------------------------------------------- Contact me: tal.gal...@gmail.com | 972-52-7275845 Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) | www.r-statistics.com (English) ---------------------------------------------------------------------------------------------- On Wed, Jan 26, 2011 at 7:40 PM, Henrique Dallazuanna <www...@gmail.com> wrote: Try this: all.vars(terms(fit1)) all.vars(terms(fit2)) On Wed, Jan 26, 2011 at 3:33 PM, Tal Galili <tal.gal...@gmail.com> wrote: Hello all, I wish to extract the terms from an rpart object. Specifically, I would like to be able to know what is the response variable (so I could do some manipulation on it). But in general, such a method for rpart will also need to handle a "." case (see fit2) Here are two simple examples: fit1 <- rpart(Kyphosis ~ Age + Number + Start, data=kyphosis) fit1$call fit2 <- rpart(Kyphosis ~ ., data=kyphosis) fit2$call Is there anything "prettier" then using string manipulation? Thanks. ----------------Contact Details:------------------------------------------------------- Contact me: tal.gal...@gmail.com | 972-52-7275845 Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) | www.r-statistics.com (English) ---------------------------------------------------------------------------------------------- [[alternative HTML version deleted]] ______________________________________________ R-help@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. -- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O -- Henrique Dallazuanna Curitiba-Paraná-Brasil 25° 25' 40" S 49° 16' 22" O [[alternative HTML version deleted]]
______________________________________________ R-help@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.