如何重命名拆分直方图中的拆分变量?

问题描述

具体来说,我有以下代码:

histogram(~di01a | sex,type="count",nint = 20,stripes =c("horizontal"),data = ALLBUSNEU)

它生成以下视觉效果。

enter image description here

变量性别可以有值 1 和 2,但它为两个直方图显示“sex”,这是第一个问题: 如何让它显示 1 和 2?

第二期: 我希望它们显示为“男”和“女”,这可能不改变变量本身吗?

解决方法

确保在 factor 列中传入 sex

您的代码应该如下所示:

library(lattice)

ALLBUSNEU$sex <- as.factor(ALLBUSNEU$sex)
histogram(~di01a | sex,type="count",nint = 20,stripes =c("horizontal"),data = ALLBUSNEU)

第二个问题:我希望它们显示为“男”和“女”?

这是在 lattice 中执行此操作的惯用方式,如其文档和 other referenced materials 中所述:

ALLBUSNEU$sex <- factor(ALLBUSNEU$sex,labels=c("male","female"))
histogram(~di01a | sex,data = ALLBUSNEU)

如果您担心这会改变原始列,那么创建一个额外的变量(列)以保持该列不变。

ALLBUSNEU$sexFactor <- factor(ALLBUSNEU$sex,"female"))
histogram(~di01a | sexFactor,data = ALLBUSNEU)

如果您也不想在数据框上创建新列,请复制原始数据框,并在复制的副本上进行可视化,您可以在其中执行正确的类型转换。

说明

由于我没有你的数据,我将使用 mtcars 来演示这个想法。

以下代码:

library(lattice)
histogram(~mpg | cyl,data = mtcars)

产生: enter image description here

这是因为 mtcars$cyl 是数字并且不被识别为因子。 lattice 不知道如何将其与数值变量区别对待。

当我执行转换并调用相同的代码时,格子现在知道此列中的每个值都是一个因子级别,并使用其字符串表示:

library(lattice)
mtcars$cyl <- as.factor(mtcars$cyl)
histogram(~mpg | cyl,data = mtcars)

这会产生: enter image description here

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...