Я пытаюсь построить дерево rpart, где я хотел бы изменить некоторые из разделенных меток на их греческий / математический эквивалент.Например, у меня есть столбец с именем mu - я бы хотел, чтобы это отображалось как греческая буква $ \ mu $.
К сожалению, когда я заменяю одну из меток, это приводит к ошибке "Ошибка в strsplit (labs, "\ n \ n"): не символьный аргумент ".Поскольку я не использую strsplit, эта ошибка должна исходить из вызова rpart.plot, где предполагается, что все метки представляют собой простой текст.Это мой код:
split.fun <- function(x, labs, digits, varlen, faclen)
{
for(i in 1:length(labs)) {
if(substring(labs[i],0,2)=="mu"){
#labs[i] <- bquote(mu ~ .(substring(labs[i],3)))
labs[i] <- expression(paste0(mu,substring(labs[i],3)))
}
print(labs[i])
}
labs
}
data$dv <- factor(data$dv, labels = c("No", "Yes"))
fit <- rpart(dv ~ n + alpha + dev + mu, method="class", data=data)
rpart.plot(fit, yesno=2, box.palette = 0, extra=100, under = TRUE, split.fun = split.fun)
Ни подход "выражения", ни подход "bquote" не работают.Однако функция split.fun работает нормально, пока я просто заменяю подстроки другими строками (не выражениями).
Пытаясь выяснить, что происходит, я также распечатывал полученные ярлыки.Вот что я получаю:
[1] "root"
[1] "dev >= 0.075"
expression(paste0(mu, substring(labs[i], 3)))
expression(paste0(mu, substring(labs[i], 3)))
expression("alpha < 0.025")
expression("alpha >= 0.025")
expression("dev < 0.075")
expression("alpha < 0.025")
expression("dev >= 0.025")
expression(paste0(mu, substring(labs[i], 3)))
expression(paste0(mu, substring(labs[i], 3)))
expression("dev < 0.025")
expression("alpha >= 0.025")
Из этого кажется, что, как только я заменяю одну метку выражением, все остальные метки заменяются выражением.
Есть ли другой способ размещения греческих букв на участке rpart.plot?Или rpart.plot (или prp в целом) просто не способен включать математические выражения?