我正在尝试从大量系列中删除季节性因素,并将季节性包装与X13 SEATS配合使用。但是,当我用seas
包装try
函数时,我得到了非常不同/错误的输出。我需要try
来说明X13发生故障的时间。
关于如何继续前进的任何想法?
正确的行为:
test%>%
group_by_("WAGES","GEO", param) %>%
nest() %>%
mutate(
sa = map(data,
~ts( .x$sum.VALUE,
start = c(year(min(.x$NEW_DATE)), month(min(.x$NEW_DATE))),
frequency = 12) %>%
seas(transform.function = "none", na.action=na.exclude) %>%
as.tibble()
)
) %>%
unnest() %>%
head()
# A tibble: 6 x 6
WAGES GEO TYPE.OF.WORK NEW_DATE sum.VALUE x
<chr> <chr> <chr> <date> <dbl> <dbl>
1 B A C 1997-01-01 2943. 2943.
2 B A C 1997-02-01 2967. 2967.
3 B A C 1997-03-01 2918. 2918.
4 B A C 1997-04-01 2887. 2887.
5 B A C 1997-05-01 2996. 2996.
6 B A C 1997-06-01 2952. 2952.
奇怪的行为:
test%>%
group_by_("WAGES","GEO", param) %>%
nest() %>%
mutate(
sa = map(data,
~ts( .x$sum.VALUE,
start = c(year(min(.x$NEW_DATE)), month(min(.x$NEW_DATE))),
frequency = 12) %>%
try(seas(transform.function = "none", na.action=na.exclude)) %>%
as.tibble()
)
) %>%
unnest() %>%
head()
# A tibble: 6 x 6
WAGES GEO TYPE.OF.WORK NEW_DATE sum.VALUE x
<chr> <chr> <chr> <date> <dbl> <dbl>
1 B A C 1997-01-01 2943. 2943.
2 B A C 1997-02-01 2967. 2967.
3 B A C 1997-03-01 2918. 2918.
4 B A C 1997-04-01 2887. 2887.
5 B A C 1997-05-01 2996. 2996.
6 B A C 1997-06-01 2952. 2952.
数据
> dput(test)
structure(list(GEO = c("A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
"A", "A", "A", "A", "A"), WAGES = c("B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B", "B",
"B", "B", "B", "B", "B", "B", "B", "B"), TYPE.OF.WORK = c("C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
"C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C"),
NEW_DATE = structure(c(9862, 9893, 9921, 9952, 9982, 10013,
10043, 10074, 10105, 10135, 10166, 10196, 10227, 10258, 10286,
10317, 10347, 10378, 10408, 10439, 10470, 10500, 10531, 10561,
10592, 10623, 10651, 10682, 10712, 10743, 10773, 10804, 10835,
10865, 10896, 10926, 10957, 10988, 11017, 11048, 11078, 11109,
11139, 11170, 11201, 11231, 11262, 11292, 11323, 11354, 11382,
11413, 11443, 11474, 11504, 11535, 11566, 11596, 11627, 11657,
11688, 11719, 11747, 11778, 11808, 11839, 11869, 11900, 11931,
11961, 11992, 12022, 12053, 12084, 12112, 12143, 12173, 12204,
12234, 12265, 12296, 12326, 12357, 12387, 12418, 12449, 12478,
12509, 12539, 12570, 12600, 12631, 12662, 12692, 12723, 12753,
12784, 12815, 12843, 12874, 12904, 12935, 12965, 12996, 13027,
13057, 13088, 13118, 13149, 13180, 13208, 13239, 13269, 13300,
13330, 13361, 13392, 13422, 13453, 13483, 13514, 13545, 13573,
13604, 13634, 13665, 13695, 13726, 13757, 13787, 13818, 13848,
13879, 13910, 13939, 13970, 14000, 14031, 14061, 14092, 14123,
14153, 14184, 14214, 14245, 14276, 14304, 14335, 14365, 14396,
14426, 14457, 14488, 14518, 14549, 14579, 14610, 14641, 14669,
14700, 14730, 14761, 14791, 14822, 14853, 14883, 14914, 14944,
14975, 15006, 15034, 15065, 15095, 15126, 15156, 15187, 15218,
15248, 15279, 15309, 15340, 15371, 15400, 15431, 15461, 15492,
15522, 15553, 15584, 15614, 15645, 15675, 15706, 15737, 15765,
15796, 15826, 15857, 15887, 15918, 15949, 15979, 16010, 16040,
16071, 16102, 16130, 16161, 16191, 16222, 16252, 16283, 16314,
16344, 16375, 16405, 16436, 16467, 16495, 16526, 16556, 16587,
16617, 16648, 16679, 16709, 16740, 16770, 16801, 16832, 16861,
16892, 16922, 16953, 16983, 17014, 17045, 17075, 17106, 17136,
17167, 17198, 17226, 17257, 17287, 17318, 17348, 17379, 17410,
17440, 17471, 17501, 17532, 17563, 17591, 17622, 17652, 17683,
17713, 17744), class = "Date"), sum.VALUE = c(2942.79, 2966.87,
2917.65, 2886.7, 2996.36, 2951.9, 2886.96, 2875.52, 2891.09,
2857.64, 2857.19, 2938.29, 2916.43, 2950.59, 2944.06, 3042.12,
3020.7, 3070.28, 3146.64, 3115.46, 3051.2, 3054.67, 3096.26,
2998.87, 3107.29, 3138.41, 3117.86, 3161.73, 3149.02, 3177.42,
3137.76, 3261.84, 3106.48, 3137.77, 3105.52, 3142.32, 3247.22,
3248.63, 3252.82, 3280.65, 3313.76, 3245.07, 3166.89, 3240.5,
3242.17, 3295.03, 3308.48, 3371.51, 3365.83, 3411.71, 3417.11,
3427.45, 3460.72, 3475.9, 3490.49, 3458, 3532.22, 3570.26,
3541.26, 3612.36, 3459.7, 3523.97, 3571.65, 3640.84, 3615.73,
3654.52, 3629.03, 3687.52, 3757.01, 3723.74, 3724.37, 3701.46,
3780, 3794.06, 3848.25, 3777.4, 3763.98, 3822.27, 3728.23,
3721.93, 3810.86, 3866.44, 3768.33, 3732.14, 3763.74, 3728.01,
3759.04, 3818.27, 3901.36, 3974.64, 3822.89, 3900.47, 3877.12,
3941.25, 3992.6, 3890.61, 4070.44, 3991.31, 4057.15, 4042.89,
4081.62, 4124.09, 4100.03, 4104.25, 4152.81, 4184.22, 4191.78,
4335.11, 4428.65, 4453.45, 4459.03, 4407.08, 4435.67, 4425.71,
4430.47, 4509.67, 4517.91, 4515.04, 4643.59, 4717.82, 4662.64,
4649.25, 4600.51, 4675.07, 4697.62, 4757.74, 4773.4, 4744.1,
4857.38, 4837.44, 4967.31, 5052.1, 5061.4, 4950.29, 4915.1,
4923.38, 4960.42, 4887.15, 4937.85, 4963.6, 5116.15, 5114.9,
5150.8, 5150.82, 5261.63, 5130.35, 5213.73, 5299.9, 5418.23,
5422.04, 5218.62, 5230.13, 5225.52, 5244.1, 5186.85, 5320.53,
5468.49, 5364.93, 5306.77, 5371.19, 5424.5, 5390.56, 5374.57,
5478.07, 5320.84, 5213.12, 5317.83, 5273.84, 5199.13, 5309.82,
5296.64, 5241.29, 5408.55, 5462.32, 5429.53, 5468.51, 5475.63,
5467.46, 5628.65, 5629.16, 5579.87, 5658.13, 5548.71, 5614.89,
5674.22, 5743.01, 5656.38, 5691.82, 5829.81, 5756.8, 5898.06,
5773.46, 5913.27, 5894.29, 5883.03, 5778.02, 5891.21, 5854.83,
5869.7, 5873.28, 6144.47, 6067.37, 5965.27, 5958.77, 5994.6,
6025.06, 5976.58, 5997.73, 6069.14, 5969.32, 5969.05, 6054.59,
6067.95, 6074.01, 6060.74, 6069.58, 6176.02, 6081.7, 6040.36,
6138.42, 6185.58, 6165.99, 6297.46, 6150.29, 6264.32, 6374.1,
6284.27, 6308.03, 6228.47, 6363.61, 6387.65, 6378.08, 6463.29,
6410.47, 6288.4, 6171.26, 6399.54, 6299.71, 6320.09, 6353.56,
6247.33, 6204.12, 6399.19, 6087.1, 6326.06, 6322.25, 6377.29,
6415.95, 6480.69, 6483.07, 6406.39, 6391.18, 6267.62, 6532.64,
6483.3, 6464.72, 6577.79, 6518.49, 6620.3, 6431.73)), row.names = c(NA,
-260L), vars = c("GEO", "WAGES", "TYPE.OF.WORK"), drop = TRUE, indices = list(
0:259), group_sizes = 260L, biggest_group_size = 260L, labels = structure(list(
GEO = "Alberta", WAGES = "Average hourly wage rate", TYPE.OF.WORK = "Full-time employees"), class = "data.frame", row.names = c(NA,
-1L), vars = c("GEO", "WAGES", "TYPE.OF.WORK"), drop = TRUE), class = c("grouped_df",
"tbl_df", "tbl", "data.frame"))
答案 0 :(得分:0)
一种选择是使用safely
或possibly
来包装seas
函数
posSea <- possibly(seas, otherwise = NA)
out <- test%>%
group_by_("WAGES","GEO", param) %>%
nest() %>%
mutate(
sa = map(data,
~ts( .x$sum.VALUE,
start = c(year(min(.x$NEW_DATE)), month(min(.x$NEW_DATE))),
frequency = 12) %>%
posSea(transform.function = "none", na.action=na.exclude)%>%
as.tibble()
)
) %>%
unnest() %>%
head()
答案 1 :(得分:0)
我发现了为什么代码不起作用。
try
的行为正确-从某种意义上说,我的代码没有因错误而崩溃-但seas
包中的seasonal
根据成功还是失败产生了不同的输出。因此,as.tibble
仅强制公共列,在我的情况下,仅返回一个列。