Я делаю бокс-сюжеты, и у меня проблемы с легендой. В частности, я хочу написать «≥2: n = formatC (nrow (x))», но не могу объединить команды для символа ≥, функции, которая вычисляет nrow(x)
и formatC(nrow(x), bigmark=",")
, которая должна давать номер строки с разделителем тысяч.
Что я пробовал до сих пор:
smoke <- matrix(c(1:1200),ncol=1,byrow=TRUE)
colnames(smoke) <- c("High")
smoke <- as.table(smoke)
pdf('test.pdf')
plot(NA,xlim=c(0,100),ylim=c(0,100))
legend(10,70,bquote(paste(NA>=2, ": n=", .(formatC(nrow(smoke)), big.mark=","))))
dev.off()
Что дает: ≥ 2: n=1200
Я бы хотел: ≥2: n=1,200
Похоже, что formatC не работает в кавычках, и я также хотел бы удалить пробел после символа ≥.
Я также пробовал:
legend(x,y, legend=c(expression(NA>=2), paste(": n=", formatC(nrow(smoke)), sep="")))
Что дает легенду в двух строках: <код> ≥ 2 : n = 1200
Ввод paste
перед expression
дает одну строку, но не преобразует> = в ≥.
Я экспортирую график как pdf, который в настоящее время работает для символа ≥. Я бы предпочел оставить это. Юникод не работает с pdf в моих руках.
Заранее спасибо, Филипп
1 ответ
У вас )
не в том месте сразу после smoke
, поэтому он принимает аргумент big.mark
как часть paste
, а не formatC
. Попробуй это:
legend(10,70,bquote(paste(NA>=2, ": n=", .(formatC(nrow(smoke), big.mark=",")))))
Похожие вопросы
Новые вопросы
r
R - это бесплатный язык программирования с открытым исходным кодом и программная среда для статистических вычислений, биоинформатики, визуализации и общих вычислений. Пожалуйста, предоставьте минимальные и воспроизводимые примеры вместе с желаемым результатом. Используйте dput () для данных и укажите все небазовые пакеты с вызовами library (). Не вставляйте изображения для данных или кода, вместо этого используйте блоки кода с отступом. По вопросам, связанным со статистикой, используйте https://stats.stackexchange.com.
paste0
вместоpaste
или указавsep = ""
в вызовеpaste
.≥
и2
нет лишнего пробела. Если вы сделаете простоlegend(10,70,bquote(3>=2))
, вы увидите, что это обычное пространство.