You need to enable JavaScript to run this app. 如何在R中绘制三列时序数据的单Y轴折线图并计算组间差异p值
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中绘制三列时序数据的单Y轴折线图并计算组间差异p值

R 绘图实现

使用tidyverse系列包即可完成需求中的折线图绘制,完整代码如下:

library(tidyverse)
# 导入你提供的数据集
df <- structure(list(Group.1 = structure(c(17897, 17928, 17956, 17987,
18017, 18048, 18078, 18109, 18140, 18170, 18201, 18231, 18262,
18293, 18322, 18353, 18383, 18414, 18444, 18475, 18506, 18536,
18567, 18597), class = "Date"), w_VidP = c(92.5925925925926,
95.0391644908616, 91.2820512820513, 94.1326530612245, 96.8838526912181,
93.6962750716332, 94.1340782122905, 95.1219512195122, 94.6635730858469,
91.0869565217391, 93.9130434782609, 95.0664136622391, 93.7833037300178,
93.7943262411348, 73.7814554522784, 78.7838462772634, 80.9031501001477,
81.311686371836, 83.6755826502932, 85.4640458697901, 92.2114249211173,
93.379673311808, 93.451937568209, 92.7840865787669), h_VidP = c(90.9090909090909,
83.3333333333333, 88.2352941176471, 92.8571428571429, 90.4761904761905,
0, 0, 0, 0, 96, 0, 0, 0, 96, 78.3102143757881, 85.030303030303,
87.3960332693538, 87.9140328697851, 89.0800794176042, 90.1778808971384,
94.3351505095994, 94.8272066916135, 94.7485536270583, 93.8617401668653
), nwo_VidP = c(84.6153846153846, 85.7142857142857, 85.7142857142857,
NaN, NaN, 90.9090909090909, NaN, 87.5, 94.7368421052632, 90.9090909090909,
89.6551724137931, 66.6666666666667, 80, 61.5384615384615, 72.1188118811881,
81.7953861584754, 84.7028086218158, 84.8016997167139, 85.1056211958468,
86.2537123462028, 91.467481934408, 92.6741803278689, 92.8238838674336,
92.0883387938357)), row.names = c(NA, -24L), class = "data.frame")

# 宽表转长表适配ggplot绘图逻辑
df_long <- df %>% 
  pivot_longer(cols = -Group.1, names_to = "分组", values_to = "VidP") %>% 
  mutate(VidP = ifelse(is.nan(VidP), NA, VidP)) # 将NaN替换为R可识别的缺失值格式

# 绘制折线图
ggplot(df_long, aes(x = Group.1, y = VidP, color = 分组, group = 分组)) +
  geom_line(na.rm = TRUE) + # 自动跳过缺失值
  labs(x = "日期", y = "% Vid", color = "分组") +
  theme_bw()
三组时间序列变化趋势差异的显著性检验方法

要判断三组数据随时间的变化是否存在显著差异,核心是检验「分组×时间」的交互作用是否显著,优先推荐以下两种方法:

  • 线性混合效应模型(LMM):对缺失值容忍度高,不需要数据完全平衡,适配你的数据特征。将VidP作为因变量,分组、转换为数值型的时间变量作为固定效应,加入分组和时间的交互项,检验交互项的p值即可,若p<0.05则说明三组随时间的变化趋势存在显著差异,可配合lme4和lmerTest包实现p值计算。
  • 重复测量方差分析:如果数据满足正态分布、方差齐性的前提,也可以选用该方法,但需要先对缺失值进行插补处理,易用性弱于线性混合效应模型。

注意:你数据中的h_VidP在2019年有多条0值记录,需要先确认这些0值是真实测量值还是缺失值,若为缺失值需要替换为NA后再进行分析,否则会大幅干扰检验结果。

内容的提问来源于stack exchange,提问作者Evan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 13:45:10