使用2级因子变量的条件密度图

时间:2017-12-04 03:03:16

标签: r plot

我正在尝试使用2级因子变量绘制条件密度图。这个变量最初是一个3级因子变量,但是我只使用3个因子级别中的2个构建了我的数据帧(microtus.train)。当我绘制条件密度图时,因子水平在" y轴"显示为"未知"这是我在构建时排除的水平" microtus.train"。请看下面的情节。

enter image description here

我不确定为什么它仍然存在。有人可以指导我如何解决这个问题吗?修复之后,我应该看到" multiplex"和" subterraneus"作为y轴上的标签。

我的代码如下:

library(Flury)
data(microtus, package = "Flury")

# Creating training data frame
microtus.train <- subset(microtus, 
  microtus$Group %in% c("multiplex", "subterraneus"), 
  select = c("Group", "M1Left", "M2Left", "M3Left", "Foramen", "Pbone",
             "Length", "Height", "Rostrum") )
# Plot Conditional Density plot of Group given M1Left
cdplot (Group ~ M1Left, data = microtus.train)

提前谢谢!

1 个答案:

答案 0 :(得分:0)

您已删除了与Group第三级相对应的行,但Group列仍然被编码为具有三个级别的因子(现在只有两个级别存在于数据),似乎混淆了cdplot函数。使用droplevels删除空白级别。

str(microtus.train$Group)
Factor w/ 3 levels "multiplex","subterraneus",..: 1 1 1 1 1 1 1 1 1 1 ...
microtus.train$Group = droplevels(microtus.train$Group)
str(microtus.train$Group)
Factor w/ 2 levels "multiplex","subterraneus": 1 1 1 1 1 1 1 1 1 1 ...
# Plot Conditional Density plot of Group given M1Left
cdplot (Group ~ M1Left, data = microtus.train)

enter image description here