Prof. Ripley kindly pointed out to me that the "digits" parameter in text.tree() is intended to work on numeric labels. The values that I wanted to modify are not labels (at least not the ones so controlled), nor are they numeric.

I have since figured out how to do what I want. The values I want to change are stored within the tree object as character strings. By taking these strings apart, rounding the numeric component, and putting them back together I have been able to solve my problem. I have modified my original code to show what I did:

####################################################
#some fake data
   set.seed(123)
   f1 <- factor(rep(1:4, 50))
   m1 <- matrix(runif(800), nc=4)
   d1 <- data.frame(f1, m1)
#the test
   library(tree)
   mdl1 <- tree(f1 ~ ., data=d1)
#(messy) output
   plot(mdl1); text(mdl1, cex=.6)
#minor surgery on the tree object
   s1 <- nchar(mdl1$frame$splits[, 1]) > 0
   sp1 <- mdl1$frame$splits[s1, 1]
mdl1$frame$splits[s1, 1] <- paste("<", round(as.numeric(substr(sp1, 2, nchar(sp1))), 2), sep="")
#(better) output
   plot(mdl1); text(mdl1, cex=.6)
####################################################

Ian Robertson

______________________________________________
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.

Reply via email to