在生成箱线图时提醒 R 整数是一个因素

标签 r ggplot2

下午好

这是我在这里的第一个问题,我们正在尽一切努力做到彻底。

我正在使用 R 中的大型数据集 (casualtiesdf),我正在尝试使用 ggplot2 生成箱线图,其中变量 Age_of Casualty 由 Casualty_Severity 变量决定。问题是 R 认为 Casualty_Severity 变量是整数。数据中的 Casualty_Severity 按数字 1、2、3 列出。

下面您可以看到,我尝试将整数重命名为对应的命名因子,然后将整数转换为因子。

casualtiesdf$Casualty_Severity[casualtiesdf$Casualty_Severity == 1] "Fatal" 
casualtiesdf$Casualty_Severity[casualtiesdf$Casualty_Severity == 2]"Serious"
casualtiesdf$Casualty_Severity[casualtiesdf$Casualty_Severity == 3] "Slight"
casualtiesdf$Casualty_Severity <- as.factor(casualtiesdf$Casualty_Severity)

但是,当我尝试绘制箱线图时...

> ggplot(data = casualtiesdf, aes(x = Age_of_Casualty,
+ y = casualtiesdf$Casualty_Severity)) +
+ geom_boxplot()

我得到:“警告消息:position_dodge 需要不重叠的 x 间隔” 我在 Google 中输入了这条消息,stackflow 似乎建议将分类变量放在 x 轴中(是的,我仍然对我的 x 和 y 感到很困惑......)所以我尝试了:

ggplot(data = casualtiesdf, aes(x = Casualtiesdf$Casualty_Severity, 
                            y = Age_of_Casualty + 
                            geom_boxplot()

并收到错误消息“错误:未找到对象‘Age_of_Casualty’”

然后我开始思考也许我必须将 as.factor 放在情节代码中:

ggplot(data = casualtiesdf, aes(x = casualtiesdf$Casualty_Severity  
as.factor(casualtiesdf$Casualty_Severity))) y = Age_of_Casualty) +
geom_boxplot()

并得到错误信息“unexpected symbol in: geom_boxplot() ggplot”

非常感谢任何帮助!

最佳答案

Age_of_Casualty 也是数据框的一部分吗?如果没有,您可能会考虑合并或单独分配以在 df 中创建一个 Age_of_Casualty 列。

我创建了一个带有两个变量的虚拟数据框

casualtiesdf <- data.frame(Casualty_Severity=c(1,2,1,1,2,3,1,3), Age_of_Casualty = c(31,32,32,33,33,33,35,35)) 然后我创建了另一个变量,将 casualty_severity 存储为因子

casualtiesdf$Casualty_Severity_factor <- factor(x = casualtiesdf$Casualty_Severity, 
                                            levels = c(1,2,3),
                                            labels = c("Fatal","Serious","Slight"))

有了它,我就可以绘制箱线图了,以 casualty_severity 作为 X 轴

library("ggplot2")
ggplot(data = casualtiesdf, 
       aes(x= Casualty_Severity_factor, y =  Age_of_Casualty)) +
  geom_boxplot()

这应该给你一些像这样的情节 enter image description here

关于在生成箱线图时提醒 R 整数是一个因素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39918471/

相关文章:

r - R 保留列表循环中最后一个变量的奇怪行为?

r - 在另一个函数中定义函数的优雅方式

r - geom_col 值乱序

r - ggplot2 - 在绘图之外进行注释

r - ggplot密度图产生意想不到的结果

r - 如何在插入符号中加入 logLoss

r - 有没有办法从 lmer 推断预测数据

r - 运行应用程序 : Error in match. arg(position) 时出现 Shiny 错误: 'arg' 必须为 NULL 或字符向量

r - 如何使用 ggplot 创建两条线和散点图

r - 在 ggplot2 中翻转/转置热图