将多个累积列转换为标准形式并在 R 中绘制

Convert multiple cumulative columns to normal form and plot in R

所以我有一个以非常简单的方式表示的以下形式的数据框:

Sno Box1 Box2
1 5 8
2 7 9
3 13 12

但是它是由50个这样的盒子和100个这样的序列号组成的

现在我面临两个问题:

首先,我想把这个累积数据转换成普通数据

Sno Box1 Box2
1 5 8
2 2 1
3 6 3

其次,我想在图表中绘制每一列。因此,plot 1 将为 Box 1 生成一个图形,其中 SNo 作为 x 轴,box 1 的值作为 y 轴。类似地,plot 2 将为 Box 2 生成一个图形,其中 SNo 作为 x 轴,box 2 的值作为 y 轴,依此类推。

因此最终结果将是 50 张图表,将使用 R 显示每天的数据。

你的数据是(请提供代码,不是表格/图片)

df <- data.frame(Sno= 1:3, Box1= c(5,7,13), Box2= c(8,9,12))

我们可以简单地使用行之间的差异来使其“正常”而不是累积:

df <- cbind.data.frame(Sno= df$Sno,
                       rbind.data.frame(df[1, 2:ncol(df)],
                                        df[2:(nrow(df)), 2:ncol(df)] - 
                                        df[1:(nrow(df)-1), 2:ncol(df)])
                                        )

您可以像这样绘制所有列:

for(col_i in names(df)[-1]){
  plot(df$Sno, df[ , col_i], ylab= col_i)
}