r - 为 R 中的两个时间序列值创建索引

标签 r

我正在尝试比较 R 中的两个时间序列,通过将它们绘制在折线图上来评估它们之间的关联程度。为了避免数据有两个单独的轴,我想为每个值创建一个索引,通过绘制索引而不是原始数据来绘制自日期 X 以来值的变化。

数据看起来像这样:

Table 1.
Month   A      B
Jan     3883   151831
Feb     3626   154070
Mar     4346   163550
Apr     3439   155674

期望的输出如下所示:

Table 2.
Month   A      A.index   B        B.index
Jan     3883   100       151831   100
Feb     3626   93.38     154070   101.47
Mar     4346   111.92    163550   107.71
Apr     3439   88.56     155674   102.53

我可以通过将表 1 导出到 excel 并为 A.index 和 B.index 添加一列并使用计算来确定索引号 100 的变化来在 excel 中实现这一点。假设 A 在 B 列中,然后我简单地:

=(cn)/c$2*100

其中cn为C列第n行,c$2为原值,100为索引号。

但是,我想知道如何在 R 中实现同样的事情,以便我可以将它包装在一个函数中,因为这将是我需要半定期做的事情。

干杯汤姆

最佳答案

使用 tranform(),这非常简单。关键行实际上与 Excel 代码非常相似,应该是不言自明的。

df <- read.table(text="Month   A      B
Jan     3883   151831
Feb     3626   154070
Mar     4346   163550
Apr     3439   155674", header=T)

df <- transform(df, A.index=100*A/A[1], B.index=100*B/B[1])
df
#   Month    A      B   A.index  B.index
# 1   Jan 3883 151831 100.00000 100.0000
# 2   Feb 3626 154070  93.38141 101.4747
# 3   Mar 4346 163550 111.92377 107.7185
# 4   Apr 3439 155674  88.56554 102.5311

关于r - 为 R 中的两个时间序列值创建索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8335943/

相关文章:

r - 设置公式中定义的变量名称

r - ggplot2 中的圆形直方图,条形间距均匀且没有多余线条

r - 使用 dplyr 包按时间平均 - R

r - 错误: `data` and `reference` should be factors with the same levels

c++ - 为什么我的 Rcpp 代码会给出意外的所有整数值输出?

r - 标记数字向量中值高于或低于特定阈值的位置

r - 未使用的参数(键 = "iris.hex")

r - 双R tcltk进度条

r - 根据时间在R中绘制数据

r - 在ggplot中设置日期范围