R语言 -x中的错误:使用ggplot 2多行代码时,一元运算符的参数无效

yx2lnoni  于 2023-10-13  发布在  其他
关注(0)|答案(1)|浏览(154)

我正试图用比值比绘制一幅森林图;但是我一直遇到一个问题我得到这个消息“-x中的错误:当我运行代码时,一元运算符”的参数无效。
我已经在代码行的开头检查了额外的“+”,但似乎找不到任何。
这是我尝试运行的代码:

ggplot(Limit_water_Round, aes(y = term, x = oddsratio)) +
 geom_point(shape = 18, size = 5) +  
 geom_errorbarh(aes(xmin = conflower, xmax = confupper), height = 0.25) +
 geom_vline(xintercept = 1, color = "red", linetype = "solid", cex = 1, alpha = 0.5) +
 scale_y_continuous(name = "", breaks=1:11, labels = Limit_water_Round$term, 
 trans = "reverse") +
  xlab("Odds Ratio (95% CI)") + 
  ylab(" ") + 
  theme_bw() + theme(panel.border = element_blank(),
        panel.background = element_blank(),
        panel.grid.major = element_blank(), 
        panel.grid.minor = element_blank(), 
        axis.line = element_line(colour = "black"),
        axis.text.y = element_text(size = 12, colour = "black"),
        axis.text.x.bottom = element_text(size = 12, colour = "black"),
        axis.title.x = element_text(size = 12, colour = "black"))
xa9qqrwz

xa9qqrwz1#

您遇到的错误消息可能是在对数据执行的算术运算出现问题时产生的,而不一定是ggplot代码本身的问题。从你的代码中,似乎有一个错字在geom_errorbarh
以下是故障排除和解决问题的几个步骤:

1.更正水平误差条的拼写错误:

geom_errorbarh替换为geom_errorbar,并适当调整aesMap。由于您将项放在y轴上,比值比放在x轴上,因此可能不需要水平误差条函数;标准的geom_errorbar可能与你的翻转坐标一起工作。

2.检查数据类型和值:

确保aes()Map中的所有变量(oddsratioconflowerconfupperterm)在Limit_water_Round Dataframe 中可用,并且具有正确的数据类型和值。错误消息可能是由于尝试对非数值数据类型执行算术或处理NANULL值而导致的。

3.检查和验证:

您可能需要打印或检查Limit_water_Round Dataframe ,以确保它包含您所期望的内容。如果可能,请尝试使用数据的子集或虚拟数据运行ggplot代码,以确定可能发生错误的位置。

建议/调整编码:

下面是对代码的粗略调整(您可能需要根据特定数据和所需输出进一步调整):

ggplot(Limit_water_Round, aes(y = term, x = oddsratio)) +
 geom_point(shape = 18, size = 5) +  
 geom_errorbar(aes(xmin = conflower, xmax = confupper), height = 0.25) +
 geom_vline(xintercept = 1, color = "red", linetype = "solid", size = 1, alpha = 0.5) +
 scale_y_continuous(name = "", breaks = 1:11, labels = Limit_water_Round$term) +
 coord_flip() +
 labs(x = "Odds Ratio (95% CI)", y = " ") +
 theme_bw() + 
 theme(panel.border = element_blank(),
       panel.background = element_blank(),
       panel.grid.major = element_blank(), 
       panel.grid.minor = element_blank(), 
       axis.line = element_line(colour = "black"),
       axis.text.y = element_text(size = 12, colour = "black"),
       axis.text.x.bottom = element_text(size = 12, colour = "black"),
       axis.title.x = element_text(size = 12, colour = "black"))

相关问题