我正在尝试使用2级因子变量绘制条件密度图。这个变量最初是一个3级因子变量,但是我只使用3个因子级别中的2个构建了我的数据帧(microtus.train)。当我绘制条件密度图时,因子水平在" y轴"显示为"未知"这是我在构建时排除的水平" microtus.train"。请看下面的情节。
我不确定为什么它仍然存在。有人可以指导我如何解决这个问题吗?修复之后,我应该看到" 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)
提前谢谢!
答案 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)