R函数cdplot:为何部分电脑上因子水平会出现反转?
解决cdplot跨系统返回结果不一致的问题
可靠获取特定因子水平的密度图
要稳定拿到目标因子水平的条件密度图,最直接的方案是显式指定因子的水平顺序——因为cdplot默认返回第二个因子水平的密度估计:
# 显式设置水平顺序,让"1"成为第二个水平 y <- factor(c(0,0,1,0,0,0,0,0,1,0), levels = c("0", "1")) res <- cdplot(x, y) # 此时res返回的是"1"对应的密度
如果需要获取"0"的密度,只需调整水平顺序,让"0"成为第二个水平:
y <- factor(c(0,0,1,0,0,0,0,0,1,0), levels = c("1", "0")) res <- cdplot(x, y) # 此时res返回的是"0"对应的密度
你也可以手动计算条件密度来完全控制目标水平,摆脱cdplot的默认限制:
# 提取"1"对应的x值 x_1 <- x[y == "1"] # 计算条件密度 dens_1 <- density(x_1)
简便判断当前返回的是哪个水平
不需要复杂的unlist操作,直接读取返回列表的名称即可:
current_level <- names(res)
res本身是单元素列表,它的名称就是cdplot实际计算的因子水平,直接提取就能得到结果。
内容的提问来源于stack exchange,提问作者cdalitz
相关产品推荐
相关产品推荐

