大家好,
我有一个包含许多数据列的 data.frame,但是,对于每一行,我只对这些列的子集感兴趣。我想使用另一个特定值来标识我感兴趣的列。然后我将取感兴趣的列和前 5 个列的平均值。
我的 data.frame 包括点位置、收集月份和从 1996-2012 年每个点的一组月度栅格中提取的值。对于每个点,我都对收集日期之前的六个月平均值感兴趣,例如。如果我在 200106 (06/2001) 记录了一个变量,我想要 200101-200106 的栅格平均值。
收集日期值的编码与对应于同一月份提取的值的列名称相同。
给定我的收集日期,有没有办法识别我感兴趣的列?
我的 data.frame 看起来像:
df <- data.frame(lat = c(-34, -34.5, -35, -35.5, -36, -36.5, -37),
lon = c(144, 144.5, 145, 145.5, 146, 146.5, 147),
dt = c('x200106', 'x200107', 'x200108', 'x200109', 'x200110', 'x200111', 'x200112'),
x200101 = c(1, 2, 3, 4, 5, 6, 7),
x200102 = c(10, 20, 30, 40, 50, 60, 70),
x200103 = c(1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5),
x200104 = c(11, 12, 13, 14, 15, 16, 17),
x200105 = c(11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5),
x200106 = c(1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7),
x200107 = c(21, 22, 23, 24, 25, 26, 27),
x200108 = c(10, 20, 30, 40, 50, 60, 70),
x200109 = c(1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5),
x200110 = c(11, 12, 13, 14, 15, 16, 17),
x200111 = c(11.5, 12.5, 13.5, 14.5, 15.5, 16.5, 17.5),
x200112 = c(1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7))
给定 dt (date) 我可以得到相应列的六个月平均值吗?
我不知道如何继续,我想象某种数据转换,但不知道从哪里开始。任何帮助将不胜感激。非常感谢!
干杯,亚当