0
votes

I would like to extract mean temperature (tmax) for different nest sites during the preceding 'winter' months (in this case, winter would be considered November, December, January, and February preceding the nest date).

So for example, with the data set below I'd like get the mean winter temperature (tmax) for a nest that is initiated on April 16th, 1981, meaning that I would need to average tmax values over November 1980 - February 1981. How would I go about averaging over these different years using lubridate/tidyverse functions?

temp_data<-dput(data)
structure(list(site = c("1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", "1", 
"1", "1", "1", "1", "1", "1", "1", "1"), date = structure(c(3652, 
3653, 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 
3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 
3675, 3676, 3677, 3678, 3679, 3680, 3681, 3682, 3683, 3684, 3685, 
3686, 3687, 3688, 3689, 3690, 3691, 3692, 3693, 3694, 3695, 3696, 
3697, 3698, 3699, 3700, 3701, 3702, 3703, 3704, 3705, 3706, 3707, 
3708, 3709, 3710, 3711, 3712, 3713, 3714, 3715, 3716, 3717, 3718, 
3719, 3720, 3721, 3722, 3723, 3724, 3725, 3726, 3727, 3728, 3729, 
3730, 3731, 3732, 3733, 3734, 3735, 3736, 3737, 3738, 3739, 3740, 
3741, 3742, 3743, 3744, 3745, 3746, 3747, 3748, 3749, 3750, 3751, 
3752, 3753, 3754, 3755, 3756, 3757, 3758, 3759, 3760, 3761, 3762, 
3763, 3764, 3765, 3766, 3767, 3768, 3769, 3770, 3771, 3772, 3773, 
3774, 3775, 3776, 3777, 3778, 3779, 3780, 3781, 3782, 3783, 3784, 
3785, 3786, 3787, 3788, 3789, 3790, 3791, 3792, 3793, 3794, 3795, 
3796, 3797, 3798, 3799, 3800, 3801, 3802, 3803, 3804, 3805, 3806, 
3807, 3808, 3809, 3810, 3811, 3812, 3813, 3814, 3815, 3816, 3817, 
3818, 3819, 3820, 3821, 3822, 3823, 3824, 3825, 3826, 3827, 3828, 
3829, 3830, 3831, 3832, 3833, 3834, 3835, 3836, 3837, 3838, 3839, 
3840, 3841, 3842, 3843, 3844, 3845, 3846, 3847, 3848, 3849, 3850, 
3851, 3852, 3853, 3854, 3855, 3856, 3857, 3858, 3859, 3860, 3861, 
3862, 3863, 3864, 3865, 3866, 3867, 3868, 3869, 3870, 3871, 3872, 
3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 
3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 3892, 3893, 3894, 
3895, 3896, 3897, 3898, 3899, 3900, 3901, 3902, 3903, 3904, 3905, 
3906, 3907, 3908, 3909, 3910, 3911, 3912, 3913, 3914, 3915, 3916, 
3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 
3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 
3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3949, 
3950, 3951, 3952, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 
3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 
3972, 3973, 3974, 3975, 3976, 3977, 3978, 3979, 3980, 3981, 3982, 
3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3992, 3993, 
3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 
4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 
4016, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 
4028, 4029, 4030, 4031, 4032, 4033, 4034, 4035, 4036, 4037, 4038, 
4039, 4040, 4041, 4042, 4043, 4044, 4045, 4046, 4047, 4048, 4049, 
4050, 4051, 4052, 4053, 4054, 4055, 4056, 4057, 4058, 4059, 4060, 
4061, 4062, 4063, 4064, 4065, 4066, 4067, 4068, 4069, 4070, 4071, 
4072, 4073, 4074, 4075, 4076, 4077, 4078, 4079, 4080, 4081, 4082, 
4083, 4084, 4085, 4086, 4087, 4088, 4089, 4090, 4091, 4092, 4093, 
4094, 4095, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 
4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 
4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 
4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 
4138, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 
4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4159, 
4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 
4171, 4172, 4173, 4174, 4175, 4176, 4177, 4178, 4179, 4180, 4181, 
4182, 4183, 4184, 4185, 4186, 4187, 4188, 4189, 4190, 4191, 4192, 
4193, 4194, 4195, 4196, 4197, 4198, 4199, 4200, 4201, 4202, 4203, 
4204, 4205, 4206, 4207, 4208, 4209, 4210, 4211, 4212, 4213, 4214, 
4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 
4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 
4237, 4238, 4239, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 
4248, 4249, 4250, 4251, 4252, 4253, 4254, 4255, 4256, 4257, 4258, 
4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 
4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 
4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 
4292, 4293, 4294, 4295, 4296, 4297, 4298, 4299, 4300, 4301, 4302, 
4303, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 
4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 
4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 
4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 
4347, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 
4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 
4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 
4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 
4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 
4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 
4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 
4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 
4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 
4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 
4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 
4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 
4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 
4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 
4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 
4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 
4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 
4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 
4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 
4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 
4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 
4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 
4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 
4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 
4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 
4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 
4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 
4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 
4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 
4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 
4677, 4678, 4679, 4680, 4681, 4682, 4683, 4684, 4685, 4686, 4687, 
4688, 4689, 4690, 4691, 4692, 4693, 4694, 4695, 4696, 4697, 4698, 
4699, 4700, 4701, 4702, 4703, 4704, 4705, 4706, 4707, 4708, 4709, 
4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 
4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 
4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 
4743, 4744, 4745, 4746, 4747), class = "Date"), tmax = c(7, 4.5, 
3.5, 4, 9, 6.5, -1, 1, 5.5, 4, 2, 11.5, 10.5, 11.5, 10, 8.5, 
6.5, 5, 2.5, 2, 2.5, 1, 0.5, 1.5, 2.5, 0.5, -6, -9, -6.5, -4.5, 
-2.5, 1, 4, 5.5, 3.5, 5.5, 5.5, 8.5, 6.5, 6.5, 6, 6.5, 4.5, 3, 
5, 9.5, 12, 11.5, 11, 11, 11, 7, 7, 8.5, 9.5, 13.5, 16.5, 17, 
14, 12, 13.5, 12.5, 11, 12, 11, 10.5, 9.5, 10.5, 12.5, 15.5, 
13, 7, 10, 13.5, 9.5, 6.5, 10.5, 9.5, 9, 12.5, 9, 12, 9, 9, 10, 
9.5, 8.5, 10.5, 13.5, 10, 9.5, 10.5, 10.5, 12, 16, 14.5, 10, 
10, 15, 14.5, 12, 14, 17.5, 21.5, 23, 20.5, 22, 26.5, 26.5, 27.5, 
27, 24, 22, 22.5, 20.5, 17, 22, 25, 27.5, 22.5, 17, 23, 24, 24.5, 
27, 28, 24, 20, 21.5, 17, 13.5, 14, 19.5, 21, 21.5, 20.5, 16.5, 
21, 24.5, 27.5, 30.5, 32, 29.5, 19, 10, 8.5, 9, 14.5, 18.5, 19.5, 
20.5, 21.5, 20.5, 15.5, 15.5, 17, 18.5, 18, 24, 29.5, 29, 28.5, 
27.5, 24, 20, 19.5, 21.5, 27.5, 29.5, 30, 31, 31, 31.5, 30.5, 
25.5, 28, 29, 26.5, 23.5, 28.5, 31.5, 29.5, 27, 29, 29.5, 29.5, 
29.5, 30, 32.5, 33, 32.5, 30, 32.5, 30, 27.5, 26.5, 28.5, 32.5, 
31, 30, 29.5, 31, 35, 40, 38, 35, 33.5, 34, 35, 36, 34.5, 35, 
34, 32.5, 33.5, 30.5, 27, 29.5, 29, 29.5, 32, 31.5, 31.5, 34.5, 
34.5, 32.5, 31.5, 29.5, 28.5, 29.5, 28, 22.5, 27, 30.5, 29.5, 
29.5, 31.5, 31, 30, 28.5, 24.5, 23.5, 22.5, 23, 25.5, 25, 22.5, 
27.5, 33, 33.5, 31, 28, 28.5, 26.5, 22.5, 25, 23, 21, 23, 24.5, 
27.5, 26.5, 21, 19.5, 15.5, 18, 20.5, 22.5, 23.5, 25, 28.5, 27, 
26, 26, 25, 25.5, 26.5, 27.5, 27.5, 28, 28.5, 28, 25, 23, 25.5, 
21.5, 18, 14.5, 11.5, 12.5, 14, 17, 18.5, 19.5, 18, 15, 14, 15, 
13.5, 11.5, 12.5, 12.5, 13.5, 14, 16.5, 16.5, 17, 18, 20, 20.5, 
18, 18, 15, 13, 11, 7.5, 7, 6.5, 6.5, 6, 6, 7.5, 8.5, 7, 7.5, 
8, 8.5, 5.5, 3, 2.5, 2, 2, 4, 9.5, 9, 5.5, 9, 11.5, 12, 7, 3.5, 
0.5, 0, 0, -0.5, 1.5, 2, -1.5, -2, 2, 5, 2.5, 0.5, -0.5, 1, 6, 
9, 9, 6, 9.5, 12.5, 11.5, 9.5, 9, 7.5, 3.5, 2, 1.5, 2, 2, 3, 
3.5, 2, 2.5, 3, 2, 1, -1, -1.5, -1.5, 1.5, 7, 8.5, 8.5, 10, 8.5, 
9, 9.5, 7, 5, 4, 5, 9, 8.5, 5, 3.5, 4.5, 4.5, 3.5, 4, 3.5, 3, 
5, 5.5, 7.5, 3.5, -1, 5, 10, 12.5, 10.5, 10, 11, 11.5, 15, 10.5, 
8, 11.5, 14, 16, 11.5, 9, 11, 13, 13.5, 14, 14.5, 15.5, 11, 9.5, 
12.5, 14, 14.5, 15, 16.5, 17.5, 17, 16.5, 18, 15.5, 9.5, 10, 
10.5, 8.5, 10.5, 14, 14, 15, 14, 11, 13, 15, 15.5, 11.5, 11.5, 
12.5, 10, 10, 11, 17.5, 16, 10, 12, 12.5, 13.5, 15, 14.5, 14, 
19, 24.5, 22, 22, 23, 22, 16.5, 14.5, 18, 23, 22, 16.5, 16.5, 
16.5, 20.5, 23, 26.5, 28, 22, 16.5, 16, 15.5, 15, 14.5, 16.5, 
21, 18.5, 16.5, 18, 20.5, 19, 16, 17, 20, 19, 16.5, 17.5, 17.5, 
18.5, 23, 23, 22, 23, 24.5, 26, 28, 28, 22.5, 26.5, 24.5, 23.5, 
26, 30.5, 28, 23.5, 18.5, 19.5, 23.5, 24.5, 20, 15.5, 17.5, 23.5, 
25, 20.5, 24.5, 25.5, 26, 26.5, 31, 29, 30, 33.5, 33.5, 30.5, 
27, 30, 35, 32.5, 30.5, 34.5, 38.5, 37.5, 33.5, 25.5, 25.5, 31.5, 
31, 29.5, 32.5, 29.5, 28, 31.5, 34, 35, 33.5, 32, 32.5, 32, 32, 
32, 32.5, 31.5, 30, 32, 35, 33, 30, 32.5, 34.5, 32.5, 31, 31.5, 
33.5, 34.5, 35, 36, 35, 34, 35, 35.5, 37.5, 36.5, 35.5, 36, 36, 
35.5, 35, 32.5, 31, 32, 36, 36, 35, 35, 33, 33.5, 33.5, 29, 27, 
29.5, 27, 29, 28.5, 27, 28, 32, 32.5, 33.5, 30, 31, 32.5, 33, 
32, 32.5, 34, 35.5, 36, 29.5, 22.5, 21, 20, 19, 18, 15.5, 16, 
25, 21.5, 18.5, 18.5, 21, 21, 16, 14.5, 18, 22, 21.5, 14.5, 16.5, 
15, 12, 9.5, 12, 13.5, 14, 17.5, 20, 21, 21, 20, 16.5, 14.5, 
15.5, 17, 19.5, 19.5, 19, 16.5, 12, 11, 15, 17.5, 18, 18, 15.5, 
14.5, 14, 15, 16, 15.5, 16, 17.5, 13.5, 15, 15, 11.5, 15, 15.5, 
11, 9.5, 8, 12, 10.5, 8, 9, 6, 4.5, 2.5, 3, 0, 4, 5, 10, 6.5, 
5.5, 10, 13, 12, 12.5, 13, 12.5, 7, 2.5, 5, 6, 9.5, 8.5, 7, 5.5, 
9.5, 9, 7.5, 3.5, 1.5, 0.5, 3, 1, 2, 0, 0, -1, -1, 0, -1.5, 1, 
4.5, 1, -5.5, -9, -6.5, -5.5, -5.5, -5.5, -1, 3, 3.5, 5, 4.5, 
6, 5, 3, 1, -1.5, -1, 4, 8, 6.5, 8, 6.5, 3, 3, 3, 4, 3, 2.5, 
2, -2, -7.5, -7.5, -6.5, -6, -5.5, -4.5, -4.5, 0, 3.5, 7, 8, 
11.5, 10.5, 9, 11, 12, 12.5, 10, 5, 5, 7.5, 9, 10, 12, 14, 11.5, 
8.5, 7.5, 8, 10, 12.5, 11.5, 13, 14.5, 15.5, 10.5, 11.5, 11, 
8, 7.5, 9, 9, 6.5, 6.5, 8.5, 9.5, 12, 14, 15.5, 16, 15, 13.5, 
10, 7.5, 11, 9, 7.5, 10, 8, 8, 8, 7.5, 9, 11.5, 16, 18.5, 17, 
16.5, 15.5, 11.5, 11, 14.5, 13, 9, 11, 15.5, 20.5, 23.5, 22.5, 
20, 20, 21.5, 21, 16.5, 21.5, 25.5, 26, 23.5, 17.5, 14.5, 19, 
21, 18.5, 14, 13, 15.5, 18.5, 21, 23, 22, 23, 24, 20, 17.5, 21.5, 
25.5, 26, 24.5, 25.5, 28.5, 27.5, 20, 16.5, 16.5, 19, 24, 24, 
22.5, 22.5, 20.5, 17.5, 18, 18.5, 20, 24, 27.5, 30.5, 28, 24.5, 
26.5, 29.5, 31.5, 31.5, 31.5, 33, 34, 33, 30, 30, 30.5, 28.5, 
31.5, 32.5, 30, 24.5, 26, 25, 24, 24.5, 23, 21.5, 25.5, 26, 23, 
26.5, 30, 33, 33.5, 34, 31.5, 26, 24.5, 26.5, 31.5, 33.5, 35, 
35, 33.5, 31, 30.5, 33.5, 35.5, 34, 30.5, 31, 35.5, 36, 34, 31, 
28.5, 29.5, 32.5, 34.5, 36, 35.5, 34, 33.5, 31, 27.5, 31.5, 32.5, 
31, 32.5, 33, 32, 32.5, 35, 35.5, 35, 33.5, 32, 33.5, 34, 33.5, 
32, 30, 28, 26.5, 29, 31.5, 31.5, 28.5, 27, 28.5, 30, 32, 33, 
28.5, 19, 18.5, 19.5, 18, 14.5, 17, 24, 28, 25.5, 22, 23, 25, 
27.5, 26, 24.5, 23, 18, 16, 14, 15, 16.5, 20, 19.5, 16, 14.5, 
18, 17, 12.5, 13.5, 16, 18, 21, 21, 22.5, 23.5, 23.5, 20, 16, 
13, 15, 19, 22.5, 20, 20.5, 18.5, 15, 11, 11.5, 10.5, 9, 10, 
11, 10, 11, 12, 13, 11, 8, 8.5, 7, 4.5, 5.5, 6.5, 5.5, 6, 7, 
7.5, 8.5, 10, 9, 7, 4, 3.5, 1.5, 1, 1, 2.5, 4, 7.5, 8.5, 6.5, 
6, 6, 6.5, 9, 8, 7.5, 5, 2.5, 2, 2.5, 3.5, 4.5, 4, 3.5, 5.5, 
9, 11, 7, 7, 8.5, 9.5, 9, 4, 1.5, -1, -1, -2, -4, -6.5, -7.5, 
-7), nest_date = structure(c(3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 3747, 
3747, 3747, 3747, 3747, 3747, 3747, 3747, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 
4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4123, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 
4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496, 4496
), class = "Date")), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, 
-1095L), .Names = c("site", "date", "tmax", "nest_date"))
3
it doesn't help you given that your 'winter' consists of November, which is typically bucketed into 'fall', but for others who are interested... lubridate has a season parameter for ceiling_date or floor_date. See temp_data$season <- floor_date(temp_data$date, 'season').D.sen

3 Answers

4
votes
library(lubridate)
library(tidyverse)

out <- temp_data %>%
  mutate(
    stat_year = ifelse(month(date) %in% c(11:12), year(date) + 1, year(date))
    ) %>%
  filter(month(date) %in% c(1:2, 11:12)) %>%
  group_by(site, stat_year) %>%
  summarise(
    tmax_mean = mean(tmax)
    )
0
votes
library(lubridate)
library(dplyr)

temp_data$shifted_date <- temp_data$date - 60
temp_data$year <- year(temp_data$shifted_date) # The year of the "shifted" date
temp_data$month <- month(temp_data$date) # The actual month
temp_data$winter <- ifelse(temp_data$month %in% c(11, 12, 1, 2), 1, 0)

outdf <- temp_data %>%
  group_by(year, site) %>%
  summarize(mean_winter = mean(tmax[winter == 1])) %>%
  data.frame

head(outdf)
# year site mean_winter
# 1 1979    1    5.608333
# 2 1980    1    6.777311
# 3 1981    1    5.712500
# 4 1982    1    5.278689
0
votes

Effectively lubridate::ceiling_date and lubridate::floor_date functions can be used derive a winter date-range based on nest_date of a row. The rows meeting with criteria will be filtered and group_by can be applied to calculate the mean.

library(lubridate)
library(dplyr)
temp_data %>% filter(date <= (ceiling_date(nest_date - months(2), "months")-days(1)) &
                       date >= floor_date(nest_date - months(5), "months")) %>%
  group_by(site, nest_date) %>%
  summarise(tmax_mean = mean(tmax))

# # A tibble: 3 x 3
# # Groups: site [?]
# site  nest_date  tmax_mean
# <chr> <date>         <dbl>
# 1 1     1980-04-05      5.61
# 2 1     1981-04-16      6.22
# 3 1     1982-04-24      2.51