0

我正在使用 cut 函数将数值变量转换为具有两个级别的因子,并在箱线图中使用它,如下所示:

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

我想在 cut 函数中使用的每个标签下方包含样本大小为“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 控制台中打印标签。我想我可能需要使用表达式功能,但我也没有让它工作。任何帮助或替代方法表示赞赏。

4

1 回答 1

1

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))
于 2010-09-03T18:08:13.263 回答