gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 13:41:16 30 4
gpt4 key购买 nike

下午好

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

我正在使用 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/

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