我有时间序列的每日温度数据,我已将其分为多年和季节(SU =夏季等)。 Season.Year专栏允许分析气候年(使用去年12月作为冬季,保持趋势的季节性)。
样品:
Day Month Year maxtp Season.Year Season
1 20 8 2007 19.1 2007 SU
2 21 8 2007 17.6 2007 SU
3 22 8 2007 21.8 2007 SU
4 23 8 2007 20.0 2007 SU
5 24 8 2007 22.4 2007 SU
6 25 8 2007 21.2 2007 SU
7 26 8 2007 19.3 2007 SU
8 27 8 2007 17.5 2007 SU
9 28 8 2007 18.9 2007 SU
10 29 8 2007 18.3 2007 SU
11 30 8 2007 19.5 2007 SU
12 1 9 2007 19.8 2007 A
13 2 9 2007 19.2 2007 A
14 3 9 2007 18.9 2007 A
15 4 9 2007 20.4 2007 A
16 5 9 2007 21.2 2007 A
我想从每年中提取所有冬季,创建一个子集(和新数据集),其中包含从2007年冬季到2014年的所有温度值。
我创建的R-Loop(下面)执行此操作,但重复数据(即冬季(W)2008有364个值,其中应该只有大约90个)
for( i in 2008:2014) {
for(j in 1:4) {
j = 1
data.sub <- subset(data, data$Season.Year == i & data$Season == s[j])
Winter <- rbind(Winter, data.sub)
}
}
有人能看出这个循环有什么问题吗?为什么子集存储了如此多的数据,而不仅仅是给我2008年的所有冬季价值,其次是2009年,直到2014年?
每年冬天应该有大约90个数据点(总体上大约600个值,而我超过2500个)。
答案 0 :(得分:0)
我认为您的问题来自修改内部循环中的j
,因此对于j
的四个值中的每一个,您都需要提取s[1]
数据
无论如何,它应该更简单:
Winter <- subset(data, data$Season.Year %in% 2008:2014 & data$Season %in% s[1])
假设s [1]是冬天