R时间序列数据:绘制多个批次

师傅

我有一个很大的时间序列数据集,如下表所示。T0,T1,T2,...(持续到T70)是时间戳,有400多个批次(A,B,C ...)。我有兴趣绘制数据中的多个功能(示例数据中的“描述”列)。我的第一个尝试是为每个描述分离数据集,以使我在从T0到T70的每个子集中每批次获得一行。

在此处输入图片说明

我的目标是将该数据帧转换为时间序列对象,并检查好批次和坏批次的季节性(针对每个描述)。有人可以帮助解决R中的任何简单问题吗?谢谢!

更新:我一个描述的数据子集如下所示: 在此处输入图片说明

为了融化数据,我使用了:mdf <-melt(df,id.vars = c('Batch',colnames(df [,c(2:70)])))),但是它不起作用。我只想从中获取三个变量:批处理-时间-价值。任何帮助,将不胜感激!

编辑:dput(head(df,20))提供了以下输出。我已经将输出截断到T20而不是T70。

structure(list(Batch = c("A", "B", "C", 
"D", "E", "F", "G", "H", 
"I", "J", "K", "L", "M", 
"N", "O", "P", "Q", "R", 
"S", "T"), 
T0 = c(5, 6,
4, 2, 6, 3, 4, 6, 4, 1, 6, 5, 4, 5, 6, 5, 6, 5,
5, 6), T1 = c(6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 5, 6, 6), T2 = c(6, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 6, 6, 6, 5, 6, 6, 6, 6, 6), T3 = c(20,
19, 19, 19, 19, 18, 20, 20, 20, 20, 20, 20, 20, 19,
18, 19, 20, 20, 20, 19), T4 = c(21, 21, 21, 21, 20,
20, 21, 21, 21, 21, 22, 21, 22, 21, 21, 21, 22, 21,
22, 20), T5 = c(22, 22, 22, 22, 22, 21, 21, 22, 21,
22, 23, 22, 23, 22, 22, 23, 23, 23, 23, 22), T6 = c(23,
23, 24, 23, 23, 23, 23, 23, 23, 24, 24, 23, 23, 24,
23, 24, 24, 24, 24, 23), T7 = c(25, 25, 25, 24, 24,
24, 24, 25, 25, 25, 24, 25, 24, 25, 25, 26, 25, 25,
25, 25), T8 = c(26, 26, 25, 26, 25, 26, 26, 26, 26,
26, 25, 26, 26, 26, 26, 26, 25, 26, 25, 26), T9 = c(20,
23, 19, 21, 22, 27, 24, 26, 24, 25, 21, 23, 21, 22,
28, 22, 20, 24, 19, 27), T10 = c(16, 18, 14, 15, 15,
23, 19, 20, 19, 20, 15, 16, 15, 17, 23, 16, 15, 18,
15, 23), T11 = c(15, 16, 15, 15, 16, 17, 15, 14, 15,
15, 15, 14, 15, 15, 17, 15, 15, 15, 15, 17), T12 = c(15,
16, 15, 15, 16, 14, 17, 15, 15, 15, 15, 15, 15, 16,
15, 15, 15, 16, 15, 15), T13 = c(15, 16, 15, 15, 16,
15, 15, 15, 15, 15, 15, 15, 15, 16, 15, 15, 15, 16,
14, 15), T14 = c(16, 16, 15, 16, 16, 15, 16, 15, 16,
15, 15, 15, 15, 16, 16, 15, 16, 16, 15, 16), T15 = c(16,
16, 16, 16, 17, 15, 16, 15, 16, 15, 16, 15, 16, 16,
16, 16, 16, 16, 15, 16), T16 = c(16, 17, 16, 16, 17,
15, 17, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
15, 16), T17 = c(17, 19, 17, 18, 20, 15, 18, 15, 16,
16, 18, 16, 18, 19, 19, 17, 19, 17, 17, 17), T18 = c(24,
26, 27, 26, 28, 22, 25, 20, 25, 20, 26, 25, 27, 26,
25, 25, 28, 25, 27, 24), T19 = c(36, 37, 36, 38, 36,
38, 37, 31, 36, 26, 36, 37, 36, 36, 37, 36, 37, 35,
35, 35), T20 = c(38, 39, 37, 38, 38, 43, 39, 41, 39,
40, 38, 39, 38, 39, 43, 38, 37, 39, 37, 42)), row.names = c(NA, 
20L), class = "data.frame")

只要您没有用于该问题可重现的实践的数据,我就会添加一些虚拟数据。对于以后的问题,dput()请输入您的数据并粘贴问题。您的问题可以通过融合数据来解决。在此方法中,您可以melt()函数中reshape2选择变量作为id,其余的变量将成为行,并在键变量中带有引用。接下来,我应用该方法,并构建一些与所需内容相关的图:

library(reshape2)
library(ggplot2)
#Data
df <- data.frame(Batch=rep(c('A','B','C'),2),
                 Type=c('Good','Bad','Good','Good','Bad','Good'),
                 Description=c(rep('In',3),rep(c('Out'),3)),
                 T0=c(1,2,1,4,3,2),
                 T1=c(2,3,4,1,3,4),
                 T2=c(3,5,3,5,5,6),stringsAsFactors = F)
#Melt
mdf <- melt(df,id.vars = c('Batch','Type','Description'))
#Plot for description
ggplot(mdf,aes(x=Description,y=value,fill=variable))+
  geom_bar(stat='identity')
 

使用Descriptionx-axis可以得到以下信息:

在此处输入图片说明

您也可以使用以下方法包装一些变量,以获得不同的图facet_wrap()

#Wrap by description
ggplot(mdf,aes(x=Batch,y=value,fill=variable))+
  geom_bar(stat='identity')+
  facet_wrap(.~Description)

在此处输入图片说明

利用融合的数据,mdf您可以播放并获取所需的其他图。

更新:使用提供的数据,这里是您问题的可能解决方案:

library(tidyverse)
#Data
dff <- structure(list(Batch = c("A", "B", "C", "D", "E", "F", "G", "H", 
"I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T"), 
    T0 = c(5, 6, 4, 2, 6, 3, 4, 6, 4, 1, 6, 5, 4, 5, 6, 5, 6, 
    5, 5, 6), T1 = c(6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
    6, 6, 6, 5, 6, 6), T2 = c(6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
    6, 6, 6, 5, 6, 6, 6, 6, 6), T3 = c(20, 19, 19, 19, 19, 18, 
    20, 20, 20, 20, 20, 20, 20, 19, 18, 19, 20, 20, 20, 19), 
    T4 = c(21, 21, 21, 21, 20, 20, 21, 21, 21, 21, 22, 21, 22, 
    21, 21, 21, 22, 21, 22, 20), T5 = c(22, 22, 22, 22, 22, 21, 
    21, 22, 21, 22, 23, 22, 23, 22, 22, 23, 23, 23, 23, 22), 
    T6 = c(23, 23, 24, 23, 23, 23, 23, 23, 23, 24, 24, 23, 23, 
    24, 23, 24, 24, 24, 24, 23), T7 = c(25, 25, 25, 24, 24, 24, 
    24, 25, 25, 25, 24, 25, 24, 25, 25, 26, 25, 25, 25, 25), 
    T8 = c(26, 26, 25, 26, 25, 26, 26, 26, 26, 26, 25, 26, 26, 
    26, 26, 26, 25, 26, 25, 26), T9 = c(20, 23, 19, 21, 22, 27, 
    24, 26, 24, 25, 21, 23, 21, 22, 28, 22, 20, 24, 19, 27), 
    T10 = c(16, 18, 14, 15, 15, 23, 19, 20, 19, 20, 15, 16, 15, 
    17, 23, 16, 15, 18, 15, 23), T11 = c(15, 16, 15, 15, 16, 
    17, 15, 14, 15, 15, 15, 14, 15, 15, 17, 15, 15, 15, 15, 17
    ), T12 = c(15, 16, 15, 15, 16, 14, 17, 15, 15, 15, 15, 15, 
    15, 16, 15, 15, 15, 16, 15, 15), T13 = c(15, 16, 15, 15, 
    16, 15, 15, 15, 15, 15, 15, 15, 15, 16, 15, 15, 15, 16, 14, 
    15), T14 = c(16, 16, 15, 16, 16, 15, 16, 15, 16, 15, 15, 
    15, 15, 16, 16, 15, 16, 16, 15, 16), T15 = c(16, 16, 16, 
    16, 17, 15, 16, 15, 16, 15, 16, 15, 16, 16, 16, 16, 16, 16, 
    15, 16), T16 = c(16, 17, 16, 16, 17, 15, 17, 15, 16, 16, 
    16, 16, 16, 16, 16, 16, 16, 16, 15, 16), T17 = c(17, 19, 
    17, 18, 20, 15, 18, 15, 16, 16, 18, 16, 18, 19, 19, 17, 19, 
    17, 17, 17), T18 = c(24, 26, 27, 26, 28, 22, 25, 20, 25, 
    20, 26, 25, 27, 26, 25, 25, 28, 25, 27, 24), T19 = c(36, 
    37, 36, 38, 36, 38, 37, 31, 36, 26, 36, 37, 36, 36, 37, 36, 
    37, 35, 35, 35), T20 = c(38, 39, 37, 38, 38, 43, 39, 41, 
    39, 40, 38, 39, 38, 39, 43, 38, 37, 39, 37, 42)), row.names = c(NA, 
-20L), class = "data.frame")

接下来的代码:

#Code
Melted <- pivot_longer(dff,cols = -Batch)
Melted$name <- factor(Melted$name,levels = unique(Melted$name))
#Plot
ggplot(Melted,aes(x=Batch,y=value,color=name,group=name))+geom_line()

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在R中绘制多个时间序列

来自分类Dev

R如何绘制多个图形(时间序列)

来自分类Dev

使用plyr合并数据帧以绘制多个时间序列

来自分类Dev

绘制时间序列数据框

来自分类Dev

为什么在R中向后绘制时间序列数据?

来自分类Dev

在R中绘制时间序列

来自分类Dev

在R中绘制多个数据序列的几个问题

来自分类Dev

在R中绘制多个数据序列的几个问题

来自分类Dev

在Excel中绘制具有不同日期/时间的多个时间序列数据

来自分类Dev

如何绘制与多个国家/地区的时间序列?

来自分类Dev

使用xts在R中绘制具有不同时间索引的多个时间序列

来自分类Dev

使用xts在R中绘制具有不同时间索引的多个时间序列

来自分类Dev

使用R在单个图中缺少值的多个时间序列数据

来自分类Dev

使用表示数据帧中日期的多个变量绘制时间序列图

来自分类Dev

用seaborn绘制时间序列数据

来自分类Dev

在MATLAB中绘制时间序列数据

来自分类Dev

在R中绘制时间序列事件图

来自分类Dev

r绘制时间序列异常行为

来自分类Dev

在R中绘制时间序列事件图

来自分类Dev

在R中绘制时间序列时出错

来自分类Dev

如何在R中为时间序列光谱数据绘制漂亮的3D图

来自分类Dev

在R中绘制箱线图和时间序列数据线

来自分类Dev

如何在R中以日期格式绘制数据的时间序列图

来自分类Dev

R - 绘制时间序列数据时出现无法解释的尖峰

来自分类Dev

在R中绘制多个序列曲线

来自分类Dev

R中的时间序列数据

来自分类Dev

汇总多个轴上的时间序列数据?

来自分类Dev

用R中的时间索引绘制时间序列

来自分类Dev

熊猫:将多个时间序列DataFrame绘制到单个图中

Related 相关文章

热门标签

归档