使用R语言interaction.plot绘图时如何排除无数据的时间戳解决空图问题
问题核心原因
interaction.plot绘制时会保留自变量ZEITPUNKT的所有因子水平,而T1时间点对应的CES得分全部为缺失值,因此无法生成有效折线。只需在绘图前过滤掉T1时间点的观测即可正常出图,常用两种实现方式:
- 方式一:绘图时直接过滤数据
直接在interaction.plot的参数中使用subset()筛选排除T1的观测即可,代码如下:interaction.plot( x.factor = subset(data, ZEITPUNKT != "T1")$ZEITPUNKT, trace.factor = subset(data, ZEITPUNKT != "T1")$GRUPPE, response = subset(data, ZEITPUNKT != "T1")$CES ) - 方式二:先预处理生成专用绘图数据集
如果后续还要针对抑郁量表做其他分析,可以先单独生成仅包含T0、T2两个时间点的数据集,同时用droplevels()清除ZEITPUNKT中不存在的T1因子水平,避免后续统计/绘图出错:# 生成仅含抑郁量表有效测量时间点的数据集 ces_data <- droplevels(subset(data, ZEITPUNKT %in% c("T0", "T2"))) # 绘图 interaction.plot(ces_data$ZEITPUNKT, ces_data$GRUPPE, ces_data$CES)
额外优化建议
建议你之前计算CES总分的代码加上na.rm = TRUE参数,避免单题未答导致整份量表总分变为缺失值:
data$CES <- rowSums(data[c("CES2", "CES5", "CES7", "CES11", "CES17", "CES20", "CES1","CES3","CES4r","CES6","CES8r","CES9", "CES10","CES12r","CES13","CES14","CES15","CES16r" , "CES18" , "CES19")], na.rm = TRUE)
内容的提问来源于stack exchange,提问作者Janine
相关产品推荐
相关产品推荐

