метки, включающие в себя выражение в функции вырезания, используемое в блокпосте в R - PullRequest
0 голосов
/ 03 сентября 2010

Я использую функцию вырезания, чтобы преобразовать числовую переменную в множитель с двумя уровнями, и использую это в блокпосте следующим образом:

boxplot(Sp$Var1 ~ cut(Spt$Var5, breaks = c(0,50,100), labels =c("below 50%", "above 50%")), ...)

Я хочу включить размер выборки как "n =... "под каждой из меток, используемых в функции вырезания.Я могу получить размер выборки, используя длину с подмножеством, как это,

length(subset(Sp$Var1, SpDet$Var5<50)

И использовать cat и paste, чтобы получить размер выборки ниже метки

cat(paste("above 50%", "\n", "n =", length(subset(Sp$Var1, Sp$Var5<50)), sep=""))

Моя проблема в том, чтоЯ не смог вставить это в аргумент метки функции cut.Проще говоря, вставив вышеперечисленное в вектор меток, можно печатать коробочный график, но печатать метки в консоли R.Я думаю, что мне может понадобиться использовать функцию выражения, но у меня тоже не получилось.Любая помощь или альтернативные методы приветствуются.

1 Ответ

1 голос
/ 03 сентября 2010

Функция cat не объединяется, для этого следует использовать paste (да, дважды). С воспроизводимым примером

y <- rnorm(20)
ns <- tapply(y,y>0,length)
labs <- paste(c("0 pr below", "above 0"), paste("n =",ns), sep="\n")
boxplot(y ~ cut(y, breaks=c(-Inf,0,Inf), labels=labs))
...