Различные ошибки при использовании left_join в r - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь интерполировать две серии, но при использовании left_join получаю разные ошибки. Это две серии:

df1 = structure(list(Date = structure(c(11690, 11725, 11753, 11781, 
11809, 11844, 11872, 11900, 11942, 11970, 11998, 12026, 12061, 
12089, 12117, 12145, 12180, 12208, 12243, 12265, 12299, 12327, 
12362, 12390, 12425, 12453, 12481, 12509, 12544, 12572, 12600, 
12631, 12663, 12698, 12726, 12754, 12796, 12817, 12845, 12880, 
12907, 12936, 12971, 12996, 13027, 13062, 13090, 13118, 13160, 
13181, 13209, 13244, 13272, 13307, 13335, 13363, 13392, 13426, 
13454, 13489, 13524, 13552, 13580, 13615, 13643, 13670, 13699, 
13726, 13762, 13790, 13825, 13853, 13888, 13916, 13944, 13979, 
14007, 14035, 14063, 14098, 14126, 14154, 14189, 14217, 14259, 
14280, 14308, 14336, 14371, 14399, 14427, 14462, 14490, 14525, 
14553, 14581, 14623, 14644, 14672, 14707, 14735, 14770, 14798, 
14826, 14854, 14889, 14917, 14945, 14987, 15008, 15036, 15071, 
15099, 15134, 15162, 15190, 15225, 15253, 15281, 15316, 15351, 
15379, 15407, 15434, 15463, 15497, 15526, 15554, 15589, 15617, 
15652, 15680, 15715, 15743, 15771, 15799, 15827, 15862, 15890, 
15918, 15953, 15980, 16016, 16044, 16079, 16107, 16135, 16163, 
16198, 16226, 16254, 16289, 16317, 16345, 16380, 16408, 16457, 
16467, 16499, 16540, 16556, 16589, 16632, 16648, 16681, 16730, 
16740, 16772, 16821, 16832, 16870, 16912, 16922, 16954, 17003, 
17014, 17052, 17094, 17106, 17143, 17185, 17198, 17234, 17283, 
17287, 17325, 17367, 17379, 17416, 17465, 17471, 17514, 17556, 
17563, 17598, 17647, 17652, 17696, 17738, 17744, 17787, 17829, 
17836, 17878, 17920, 17928, 17962, 17996, 18017, 18053, 18102, 
18109, 18151, 18193, 18201, 18242), class = "Date"), Fit = c(-1.68038051095608, 
-2.12317945962401, -2.71086209338424, -3.22489682411764, -2.51769032592554, 
-1.33242532610804, -2.13564807610995, -2.13564807610995, -2.03415137348661, 
-1.58909921518124, -0.68844714029518, -1.94691881575563, -1.16714425518695, 
-2.15153420569546, -2.04779261960842, -0.867515299774483, -1.47986823637587, 
-0.650513604798111, -1.61361732632524, -1.61361732632524, -1.48596960028163, 
-2.20004804407501, -2.64689217553021, -2.67436545120372, -3.48049123019991, 
-2.28510809912552, -2.32172665536549, -1.76823348887895, -2.763353378483, 
-2.09381469041352, -2.08400217235893, -2.08400217235893, -1.59720187270177, 
-2.06034560841579, -2.56317571167687, -1.32635640217861, -1.48729782102413, 
-2.00732693090646, -3.40272319833461, -2.49810610074565, -3.32810591309226, 
-1.92402348117091, -1.35397391665409, -1.35397391665409, -1.76640461987233, 
-2.51735528772741, -2.35332514240503, -2.35272634525907, -2.68468172493552, 
-2.92171051216825, -3.16925509035157, -2.23093489115309, -3.06530983495044, 
-2.30445613039677, -3.30583207178147, -2.82188405397887, -2.82188405397887, 
-2.51962207875813, -2.66982767393931, -2.98041595989062, -2.55306093500464, 
-3.36871970472208, -2.6201699311654, -2.49494986723432, -2.78910296607766, 
-2.57178346785915, -3.28445145020619, -3.28445145020619, -2.42213276484722, 
-2.38709926337358, -2.99568739417641, -2.65138790450656, -1.58074660422518, 
-1.91906056315361, -2.90337379582732, -2.20117735700684, -1.29303194740331, 
-2.2494711668963, -1.53224235243069, -2.04481468859739, -0.929377541149286, 
-0.0656900034556943, -2.20508088335906, -0.578502434372448, -0.858925093713048, 
-2.96970181427872, -2.97862851965814, -3.31779605911778, -2.08207766441392, 
-2.4848907725881, -1.99650762208841, -2.17076028347941, -1.27061305909, 
-1.92537835567221, -1.49409886851971, -2.32667673830125, -1.90852299188928, 
-2.88390697795999, -2.9172411130509, -3.5788915130035, -2.92151370364156, 
-2.71478221054495, -3.40505963822921, -3.21129210245385, -2.66481268506047, 
-3.27494238949828, -3.37230078139583, -3.53346393522174, -3.99626066800013, 
-3.41713548837371, -3.67409843863548, -3.50182175058264, -3.37467436298585, 
-3.40580625489191, -2.99003362011982, -3.66653724632765, -3.61588309823573, 
-3.18167532125541, -3.35619362672467, -2.8806023910338, -2.23185392156432, 
-0.626338062660262, -2.00482507082523, -1.7359344838577, -0.800609837957656, 
-1.93997314433068, -0.93482911672218, -2.63652739226028, -1.93546315176661, 
-1.17524044037369, -2.274143231604, -2.69679235052359, -2.23731851002543, 
-1.86716852238077, -0.716926538642468, -1.30258784685856, -1.08194224250233, 
-0.930472602419788, 1.13081617308243, 2.57874064965174, -0.388461792958877, 
-0.340421132850094, 0.638071432169484, -1.57318833539501, 4.40961161388978, 
1.62060735764472, -0.674369921428344, 1.76679629890753, -0.748857461264583, 
0.520407646064921, -0.575555044309392, 4.34511452569889, 3.34194433067617, 
3.21304624521961, 1.97147139745885, 3.45052500620869, -0.399783726365629, 
-0.399783726365629, -0.519126753266423, -0.924795366280377, -0.924795366280377, 
4.49023560078066, 2.40210157814194, 2.40210157814194, 3.48634734098189, 
2.72330542145941, 2.72330542145941, 2.44175433903678, 1.83754103018167, 
1.83754103018167, 2.00744190890702, 2.84495436947268, 2.84495436947268, 
3.68678762972081, 3.16657087164265, 3.16657087164265, 2.54382298188246, 
3.23525009614645, 3.23525009614645, 2.25680930181096, 1.44116917115332, 
1.44116917115332, -0.510916286085479, -0.212859586548733, -0.212859586548733, 
-0.740774827758169, -0.740774827758169, -0.740774827758169, -0.740774827758169, 
-0.41701391913469, -0.41701391913469, -1.22601225946438, -0.632288989161026, 
-0.632288989161026, -1.04309509051099, -1.17291896442253, -1.17291896442253, 
-1.17291896442253, -1.17291896442253, -1.17291896442253, -1.11302828507398, 
-2.78220449305609, -2.78220449305609, -2.86224137302201, -2.86224137302201, 
-2.86224137302201, 1.34122649704384, 1.33515381941954, 1.33515381941954, 
2.56866171677324, 0.963485086246604, 0.963485086246604, 4.22653525972732, 
5.35095831479335, 5.35095831479335, 3.93448842430935)), class = c("tbl_df", 
"tbl", "data.frame"), row.names = c(NA, -216L))

df2 = structure(list(Fit = c(-3.36981025066699, -2.83074686834444, 
-3.4112766646918, -2.45754914212114, -2.16728424394746, -3.61860873481586, 
-3.61860873481586, -2.2916834860219, -1.37942237747605, -3.95034004701435, 
-1.46235520552567, -2.91367969639407, -3.95034004701435, -3.57714232079105, 
-2.16728424394746, -2.20875065797227, -2.6648812122452, -2.74781404029482, 
-2.00141858784822, -3.07954535249331, -3.07954535249331, -3.24541100859256, 
-3.36981025066699, -2.49901555614595, -2.6648812122452, -3.95034004701435, 
-3.0380789384685, -3.24541100859256, -3.12101176651812, -2.58194838419558, 
-2.83074686834444, -3.4112766646918, -2.6648812122452, -2.99661252444369, 
-3.61860873481586, -2.99661252444369, -3.57714232079105, -2.74781404029482, 
-3.20394459456775, -2.25021707199708, -2.37461631407152, -3.61860873481586, 
-3.36981025066699, -2.95514611041888, -3.61860873481586, -3.32834383664218, 
-2.74781404029482, -3.20394459456775, -2.00141858784822, -3.12101176651812, 
-3.66007514884067, -3.47347628572902, -3.95034004701435, -3.45274307871661, 
-3.45274307871661, -2.83074686834444, -3.95034004701435, -2.99661252444369, 
-3.61860873481586, -2.16728424394746, -3.70154156286548, -2.37461631407152, 
-2.83074686834444, -2.12581782992265, -3.32834383664218, -2.6648812122452, 
-3.0380789384685, -3.20394459456775, -3.4112766646918, -2.83074686834444, 
-2.91367969639407, -3.95034004701435, -2.6648812122452, -3.36981025066699, 
-2.2916834860219, -3.45274307871661, -2.37461631407152, -1.54528803357529, 
-2.91367969639407, -3.49420949274142, -2.95514611041888, -3.32834383664218, 
-2.45754914212114, -3.57714232079105, -3.36981025066699, -3.45274307871661, 
-3.95034004701435, -3.16247818054293, -2.83074686834444, -3.36981025066699, 
-2.6648812122452, -2.6648812122452, -2.45754914212114, -3.32834383664218, 
-3.66007514884067, -3.36981025066699, -3.95034004701435, -2.83074686834444, 
-2.91367969639407, -3.45274307871661, -2.20875065797227, -2.6648812122452, 
-3.95034004701435, -3.95034004701435, -2.74781404029482, -2.83074686834444, 
-2.99661252444369, -3.57714232079105, -3.95034004701435, -1.54528803357529, 
-2.45754914212114, -2.91367969639407, -3.20394459456775, -2.83074686834444, 
-3.70154156286548, -1.29648954942642, -3.36981025066699, -2.20875065797227, 
-2.45754914212114, -3.24541100859256, -2.6648812122452, -1.87701934577378, 
-2.83074686834444, -2.37461631407152, -3.95034004701435, -3.07954535249331, 
-2.6648812122452, -2.99661252444369, -2.91367969639407, -3.49420949274142, 
-3.61860873481586, -3.20394459456775, 0.44509983961565, 0.776831151814141, 
-2.37461631407152, -3.61860873481586, -0.259829198806142, -2.37461631407152, 
3.72094654757574, -1.37942237747605, -3.12101176651812, 0.196301355466782, 
-2.20875065797227, -0.923291823203123, -2.58194838419558, 0.569499081690084, 
0.486566253640461, 1.56469301828556, -1.62822086162492, 3.59654730550131, 
-0.923291823203123, -2.2916834860219, -0.633026925029444, 0.486566253640461, 
2.14522281463291, 1.15002887803744, 2.60135336890584, 2.97455109512914, 
1.02562963596301, 1.89642433048405, 2.97455109512914, 3.38921523537725, 
3.22334957927801, 3.47214806342688, 1.77202508840961, 4.05267785977424, 
3.30628240732763, -0.0939635427068968, -0.342762026855765, -0.0939635427068968, 
1.23296170608707, -0.342762026855765, -0.425694854905387, -3.36981025066699, 
-0.674493339054255, -1.08915747930237, -1.37942237747605, -2.08435141589784, 
-1.46235520552567, -1.46235520552567, -2.83074686834444, -2.25021707199708, 
-3.0380789384685, 3.05748392317876, 1.15002887803744, 2.68428619695546, 
0.196301355466782, 2.26962205670735, 2.85015185305471, 2.85015185305471
), Date = c("2002-01-03", "2002-02-07", "2002-03-07", "2002-04-04", 
"2002-05-02", "2002-06-06", "2002-07-04", "2002-09-12", "2002-10-10", 
"2002-11-07", "2002-12-05", "2003-01-09", "2003-02-06", "2003-03-06", 
"2003-04-03", "2003-05-08", "2003-06-05", "2003-07-10", "2003-09-04", 
"2003-10-02", "2003-11-06", "2003-12-04", "2004-01-08", "2004-02-05", 
"2004-03-04", "2004-04-01", "2004-05-06", "2004-06-03", "2004-07-01", 
"2004-09-02", "2004-10-07", "2004-11-04", "2004-12-02", "2005-01-13", 
"2005-02-03", "2005-03-03", "2005-04-07", "2005-05-04", "2005-06-02", 
"2005-07-07", "2005-09-01", "2005-10-06", "2005-11-03", "2005-12-01", 
"2006-01-12", "2006-02-02", "2006-03-02", "2006-04-06", "2006-05-04", 
"2006-06-08", "2006-07-06", "2006-08-03", "2006-10-05", "2006-11-02", 
"2006-12-07", "2007-01-11", "2007-02-08", "2007-03-08", "2007-04-12", 
"2007-05-10", "2007-06-06", "2007-07-05", "2007-09-06", "2007-10-04", 
"2007-11-08", "2007-12-06", "2008-01-10", "2008-02-07", "2008-03-06", 
"2008-04-10", "2008-05-08", "2008-06-05", "2008-07-03", "2008-08-07", 
"2008-09-04", "2008-10-02", "2008-11-06", "2008-12-04", "2009-01-15", 
"2009-02-05", "2009-03-05", "2009-04-02", "2009-05-07", "2009-06-04", 
"2009-07-02", "2009-08-06", "2009-09-03", "2009-10-08", "2009-11-05", 
"2009-12-03", "2010-01-14", "2010-02-04", "2010-03-04", "2010-04-08", 
"2010-05-06", "2010-06-10", "2010-07-08", "2010-08-05", "2010-09-02", 
"2010-10-07", "2010-11-04", "2010-12-02", "2011-01-13", "2011-02-03", 
"2011-03-03", "2011-04-07", "2011-05-05", "2011-06-09", "2011-07-07", 
"2011-08-04", "2011-09-08", "2011-10-06", "2011-11-03", "2011-12-08", 
"2012-01-12", "2012-02-09", "2012-03-08", "2012-04-04", "2012-05-03", 
"2012-06-06", "2012-07-05", "2012-08-02", "2012-09-06", "2012-10-04", 
"2012-11-08", "2012-12-06", "2013-01-10", "2013-02-07", "2013-03-07", 
"2013-04-04", "2013-05-02", "2013-06-06", "2013-07-04", "2013-08-01", 
"2013-09-05", "2013-10-02", "2013-11-07", "2013-12-05", "2014-01-09", 
"2014-02-06", "2014-03-06", "2014-04-03", "2014-05-08", "2014-06-05", 
"2014-07-03", "2014-08-07", "2014-09-04", "2014-10-02", "2014-11-06", 
"2014-12-04", "2015-01-22", "2015-03-05", "2015-04-15", "2015-06-03", 
"2015-07-16", "2015-09-03", "2015-10-22", "2015-12-03", "2016-01-21", 
"2016-03-10", "2016-04-21", "2016-06-02", "2016-07-21", "2016-09-08", 
"2016-10-20", "2016-12-08", "2017-01-19", "2017-03-09", "2017-04-27", 
"2017-06-08", "2017-07-20", "2017-09-07", "2017-10-26", "2017-12-14", 
"2018-01-25", "2018-03-08", "2018-04-26", "2018-06-14", "2018-07-26", 
"2018-09-13", "2018-10-25", "2018-12-13", "2019-01-24", "2019-03-07", 
"2019-04-10", "2019-06-06", "2019-07-25", "2019-09-12", "2019-10-24", 
"2019-12-12")), class = "data.frame", row.names = c(NA, -190L
))

Затем я использовал эти коды для интерполяции серии:

# first series
monthss <- data.frame(Date = seq(as.Date("2002-01-03"), as.Date("2019-12-12"), by = "month"), stringsAsFactors = F)
df1 <- left_join(x = monthss, y = df1, by = "Date")
df1 <- na.approx(object = df1$'as it comes from the previous step', rule = 2)

# second series

df2 <- left_join(x = monthss, y = df2, by = "Date")
df2 <- na.approx(object = df2$'as it comes from the previous step', rule = 2)

Однако в первом случае я получаю странный результат при использовании left_join (У меня слишком много НА, которые не соответствуют пропущенным датам), а во втором случае при использовании left_join я получаю Error: cannot join a Date object with an object that is not a Date object. Для этой ошибки я попытался найти некоторые решения в Интернете, но то, что я нашел, не помогло.

Может ли кто-нибудь помочь мне исправить это?

Спасибо!

1 Ответ

1 голос
/ 26 мая 2020

Вы получите ошибку left_join во втором случае, потому что df2$Date не принадлежит к классу Date. Это исправляет второе соединение:

library(lubridate)
# second series
df2$Date <- lubridate::date(df2$Date) #convert Date variable to date
df2 <- left_join(x = monthss, y = df2, by = "Date")
df2 <- na.approx(object = df2$'as it comes from the previous step', rule = 2)

Изменение этого исправляет первое соединение:

# first series
monthss <- data.frame(Date = seq(as.Date("2002-01-03"), as.Date("2019-12-12"), by = "day"), stringsAsFactors = F)

Вы выполнили последовательность по месяцам и, таким образом, получили даты только для каждого месяца, в котором день равно "3", например, 2002-01-03, 2002-02-03 и т. д. c. Таким образом, у вас есть соединения только для дат, заканчивающихся на «03», но не для других дат, для которых у вас есть Fit значения в df1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...