You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中基于面板数据筛选子集生成时间序列折线图

R语言筛选指定子集并生成时间序列折线图实现方法

前置准备

你给出的示例数据构造代码如下,可直接运行生成测试数据集:

Time <- c(1,1,1,1,2,2,2,2,3,3,3,3)
Gender <- c('Male', 'Male', 'Female', 'Female','Male', 'Male', 'Female', 'Female','Male', 'Male', 'Female', 'Female')
Status <- c("Yes","No","Yes","No","Yes","No","Yes","No","Yes","No","Yes","No")
Value <- c(10,  1,  9,  2,  15, 2,  18, 1,  14, 2,  41, 3)
df <- data.frame(Time,Gender,Status,Value)

方法一:基础R原生实现(无需安装第三方包)

先按条件筛选子集,再调用原生绘图函数生成折线图:

# 筛选Gender为Male且Status为Yes的子集
target_df <- df[df$Gender == "Male" & df$Status == "Yes", ]
# 绘制折线图:type="l"指定为折线类型
plot(target_df$Time, target_df$Value, type = "l",
     xlab = "时间", ylab = "数值",
     main = "Male且Status=Yes的时间序列变化")

方法二:ggplot2实现(可视化效果更灵活)

适合需要后续调整图表样式的场景,筛选+绘图可链式操作:

# 未安装ggplot2先执行安装:install.packages("ggplot2")
library(ggplot2)

df |> 
  # 筛选目标子集,可按需修改判断条件适配其他筛选规则
  subset(Gender == "Male" & Status == "Yes") |> 
  ggplot(aes(x = Time, y = Value)) +
  geom_line(linewidth = 1, color = "#2c3e50") + # 可调整折线粗细、颜色
  labs(x = "时间", y = "数值", title = "Male且Status=Yes的时间序列变化") +
  theme_minimal()

如果需要更换筛选规则,直接修改subset函数内的判断条件即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 03:27:02