gpt4 book ai didi

r - ggplot 中的 geom_vline 和 facet_wrap 错误

转载 作者:行者123 更新时间:2023-12-01 03:27:27 26 4
gpt4 key购买 nike

我正在尝试运行以下代码:

temp_plotdata <- data.table(Treatment_Code = c('Control', 'Control', 
'Second Mailing', 'Second Mailing',
'First Mailing', 'First Mailing'),
Q9 = c(9, 14, 10, 3, 1, 4))

output_gg <-
ggplot(temp_plotdata, aes(x = Q9)) +
geom_histogram(binwidth = 1, fill = 'lightblue') +
geom_vline(data = temp_plotdata[, summary(Q9)[c(2,3,5)], by=Treatment_Code],
aes(xintercept = V1),
linetype = 'dashed', color = 'darkred') +
facet_wrap(~Treatment_Code, ncol = 1)

我回来了一个错误:

Error in provideDimnames(x, sep = sep, base = base) : 'dimnames' applied to non-array



我知道问题出在 geom_vline代码的一部分,因为当我在没有这些行的情况下运行它或使用类似 geom_vline(xintercept = c(3, 5, 8)) 的东西运行它时它工作正常。我也尝试将数据从 geom_vline首先进入一个单独的数据帧,但它不起作用。

去年我运行了一段非常相似的代码,它运行良好,所以我不确定 geom_vline 是否发生了一些变化。或者如果我的代码由于新数据或我可能不小心做出的一些小改动而导致不正确。

谢谢你提供的所有帮助。

最佳答案

发生这种情况是因为 V1 的类( data.table 返回的汇总列)是表格,而不是数字向量。将其更改为向量,它应该可以工作。

output_gg <-
ggplot(temp_plotdata, aes(x=Q9)) +
geom_histogram(binwidth=1, fill='lightblue') +
geom_vline(data=temp_plotdata[, as.vector(summary(Q9)[c(2,3,5)]), by=Treatment_Code],
aes(xintercept=V1),
linetype='dashed', color='darkred') +
facet_wrap(~ Treatment_Code, ncol=1)

比较前后数据框的结构:
str(temp_plotdata[, summary(Q9)[c(2,3,5)], by=Treatment_Code])

Classes ‘data.table’ and 'data.frame':    9 obs. of  2 variables:
$ Treatment_Code: chr "Control" "Control" "Control" "Second Mailing" ...
$ V1 :Class 'table' num [1:9] 10.25 11.5 12.75 4.75 6.5 ...
- attr(*, ".internal.selfref")=<externalptr>

str(temp_plotdata[, as.vector(summary(Q9)[c(2,3,5)]), by=Treatment_Code])

Classes ‘data.table’ and 'data.frame':    9 obs. of  2 variables:
$ Treatment_Code: chr "Control" "Control" "Control" "Second Mailing" ...
$ V1 : num 10.25 11.5 12.75 4.75 6.5 ...
- attr(*, ".internal.selfref")=<externalptr>

关于r - ggplot 中的 geom_vline 和 facet_wrap 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40182461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com