我正在尝试制作一个包含每个地块样本数量的箱线图。它显示了两个变量的信息。我的代码如下:
give.nint <- function(SCPT){return(c(y = median(SCPT) * 1.06, label = length(SCPT)))}
ggplot(aes(y = speed, x = LITH, fill = SET), data = SCPT) +
geom_boxplot() +
stat_summary(fun.data = give.nint, geom = 'text') +
stat_summary(fun.data = give.nloc, geom = 'text')
这个有效! nint表示我的SCPT表中的样本数。
现在我想要绘制其他内容。所有样本都分布在多个站点或位置(因此nloc)这个数字是我想在箱箱图中显示的第二个数字。可以使用表格中的“名称”列(或X和/或Y)来标识位置。我使用确定每个位置的样本数量;
give.nloc <- function(SCPT){return(c(y = median(SCPT) * 0.94, label = length(unique(SCPT$Name))))} #[FIRST ATTEMPT]
give.nloc <- function(SCPT){return(c(y = median(SCPT) * 0.94, label = length(unique(SCPT[,2]))))} #[SECOND ATTEMPT]
ggplot(aes(y = speed, x = LITH, fill = SET), data = SCPT) +
geom_boxplot() +
stat_summary(fun.data = give.nint, geom = 'text') +
stat_summary(fun.data = give.nloc, geom = 'text')
现在这些函数与nint非常相似,但不知怎的,我不能像这样定义标签。
在我第一次尝试时,我收到了这条警告信息:
stat_summary()
中的计算失败:$运算符无效 原子载体
第二次尝试产生了此警告消息:
stat_summary()
中的计算失败:维数不正确
我现在正在考虑在我的数据框中添加另一列,其中包含所有光刻集组合的位置数(这些是aes()中的因子,因此对于每个光刻集组合,绘制一个框),但我宁愿保持数据尽可能干净......你有什么想法吗?
为清楚起见,这是我表中数据的一部分 - 我省略了一些与此问题无关的变量。
'data.frame': 4857 obs. of 10 variables:
$ SET : Factor w/ 2 levels "2014","2015": 2 2 2 2 2 2 2 2 2 2 ...
$ Name : chr "SITE1" "SITE1" "SITE1" "SITE1" ...
$ X : num 111221 111221 111221 111221 111221 ...
$ Y : num 416143 416143 416143 416143 416143 ...
$ speed : num 150 150 140 120 ...
$ STRAT : chr "Q" "Q" "R" "R" ...
$ LITH : chr "A" "B" "B" "B" ...
答案 0 :(得分:0)
语句median(SCPT)
表示SCPT
是一个向量。如果它确实是一个向量,则警告消息是有意义的
汇总函数仅对单个矢量值进行操作。如果您想在摘要中引入更多变量,请不要认为stat_summary是解决方案。