Le 16/08/13 16:19, Dirk Eddelbuettel a écrit :

Hi Tal,

On 16 August 2013 at 15:48, Tal Galili wrote:
| Hello Dirk,
| Your modifications/corrections are VERY helpful, thank you! (also, thank you
| for the general kind words and ongoing support, they are much appreciated)
|
| One more question/improvement - is it possible to have it return whatever 
value
| is inside the "label" attr?

Yes, sure.

| For example, running the following would result in an error:
|
| /*** R
| x <- list(a = 1, b=2, 6)
| attr(x[[2]], "leaf") = TRUE
| attr(x[[2]], "label") = 2
| extract_fun(x)
|
| ## output:
| ## Error: expecting a string
| /*
|
| Is there a way to either coerce/force "2" to become a string / or to return it
| as what it is? (a numeric/double value)?
| I thought that was what
|         label = as<std::string>(x.attr( "label" )) ;
| was doing - but apparently it does not coerce non-string into strings
|
|
| Any suggestions?

Am at work and a little pressed for time, so just random thoughts:

   -- R has dynamic typing. An attribute could be 'anything'

   -- C++ is typed. You either must agree with yourself on a type, or do the
      casting. Converting int to string, or vice verse, is pretty common, and
      Google will show you examples.

   -- You could try to combine the approaches and just pick leaf elements and
      stick them into a a List object as SEXP (using wrap(...)).

This is a nice example of a recursize list / tree walker. We'll get it
polished and onto the Rcpp Gallery in no time.

Dirk

I'd wait for the next Rcpp to be out for putting this example on the gallery. because then we would be able to use the more elegant is<> rather than these is_list, ...

Romain

--
Romain Francois
Professional R Enthusiast
+33(0) 6 28 91 30 30

R Graph Gallery: http://gallery.r-enthusiasts.com

blog:            http://blog.r-enthusiasts.com
|- http://bit.ly/13SrjxO : highlight 0.4.2
`- http://bit.ly/10X94UM : Mobile version of the graph gallery

_______________________________________________
Rcpp-devel mailing list
Rcpp-devel@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Reply via email to