0

I have irregularly sampled heart rate data for 189 days. I need to somehow group my data set by the number of measurements in a day and then smooth the groups separately (maybe using fdata?).

Has anyone encountered this problem before and could help out with the code? Thanks in advance!

I've tried grouping the data with sqldf like this:

sql_iv <- "select year, month, day, 
rowSums(!is.na(y_t[-1][-2][-3]))
from y_t
group by year, month, day
order by year, month, day"

y1=sqldf(sql_iv)

But I'm getting this error:

Error in result_create(conn@ptr, statement) : unrecognized token: "!"

Data structure for the first five days looks like this (columns go up to 406 because that's the highest amount of measurements in one day in my sample):

structure(list(year = c(2018, 2018, 2018, 2018, 2018), month = c(4, 
4, 4, 4, 4), day = c(7, 8, 9, 10, 11), `1` = c(97, 63, 65, 54, 
59), `2` = c(98, 59, 55, 55, 59), `3` = c(95, 60, 58, 57, 56), 
    `4` = c(93, 59, 59, 61, 59), `5` = c(94, 59, 59, 61, 58), 
    `6` = c(94, 62, 56, 60, 54), `7` = c(92, 61, 58, 56, 55), 
    `8` = c(96, 60, 58, 57, 56), `9` = c(89, 62, 56, 56, 56), 
    `10` = c(90, 66, 53, 59, 56), `11` = c(93, 68, 54, 59, 51
    ), `12` = c(90, 65, 55, 58, 58), `13` = c(99, 65, 56, 57, 
    56), `14` = c(87, 62, 56, 57, 57), `15` = c(91, 59, 56, 56, 
    54), `16` = c(92, 57, 57, 55, 54), `17` = c(93, 57, 57, 55, 
    57), `18` = c(94, 57, 57, 55, 56), `19` = c(94, 58, 57, 54, 
    57), `20` = c(104, 58, 58, 55, 53), `21` = c(90, 58, 56, 
    53, 57), `22` = c(94, 52, 56, 49, 59), `23` = c(97, 51, 48, 
    52, 58), `24` = c(97, 53, 49, 55, 56), `25` = c(90, 53, 59, 
    54, 57), `26` = c(90.2960891723633, 54, 61, 54, 57), `27` = c(93, 
    54, 62, 54, 55), `28` = c(90, 54, 64, 64, 56), `29` = c(87, 
    54, 54, 53, 57), `30` = c(89, 55, 57, 54, 57), `31` = c(85, 
    56, 58, 55, 59), `32` = c(93, 60, 58, 53, 58), `33` = c(87, 
    61, 55, 54, 59), `34` = c(65, 68, 56, 55, 56), `35` = c(113, 
    60, 56, 56, 54), `36` = c(148, 60, 53, 56, 56), `37` = c(135, 
    59, 53, 57, 56), `38` = c(151, 58, 52, 57, 52), `39` = c(74, 
59, 52, 57, 54), `40` = c(138, 61, 52, 57, 54), `41` = c(113, 
58, 46, 58, 55), `42` = c(108, 57, 45, 58, 53), `43` = c(103, 
58, 47, 56, 53), `44` = c(98, 58, 51, 57, 60), `45` = c(90, 
58, 53, 58, 60), `46` = c(89, 58, 50, 57, 58), `47` = c(89, 
52, 50, 50, 59), `48` = c(88, 51, 48, 55, 59), `49` = c(89, 
52, 46, 55, 59), `50` = c(91, 53, 47, 53, 58), `51` = c(93, 
53, 48, 52, 59), `52` = c(93, 54, 49, 55, 61), `53` = c(94, 
56, 50, 55, 60), `54` = c(91, 54, 49, 59, 58), `55` = c(91, 
53, 50, 61, 59), `56` = c(85, 52, 51, 61, 60), `57` = c(84, 
55, 51, 61, 62), `58` = c(90, 61, 51, 60, 52), `59` = c(89, 
63, 45, 61, 52), `60` = c(90, 56, 47, 61, 57), `61` = c(90, 
56, 48, 61, 51), `62` = c(88, 55, 48, 53, 54), `63` = c(91, 
55, 49, 55, 55), `64` = c(85, 58, 53, 54, 54), `65` = c(82, 
57, 56, 50, 55), `66` = c(87, 60, 53, 52, 54), `67` = c(80, 
59, 52, 56, 52), `68` = c(75, 58, 51, 54, 52), `69` = c(75, 
57, 50, 56, 53), `70` = c(70, 59, 47, 60, 51), `71` = c(70, 
59, 47, 55, 54), `72` = c(70, 61, 49, 55, 57), `73` = c(69, 
61, 48, 53, 57), `74` = c(69, 61, 49, 52, 55), `75` = c(68, 
61, 47, 55, 66), `76` = c(64, 61, 50, 66, 62), `77` = c(67, 
57, 59, 85, 61), `78` = c(67, 60, 72, 65, 59), `79` = c(67, 
54, 59, 72, 80), `80` = c(67, 51, 78, 71, 68), `81` = c(66, 
54, 58, 69, 74), `82` = c(66, 58, 96, 70, 149), `83` = c(60, 
58, 62, 82, 54), `84` = c(63, 58, 58, 78, 93), `85` = c(63, 
65, 61, 86, 90), `86` = c(61, 67, 61, 72, 86), `87` = c(63, 
64, 65, 87, 88), `88` = c(64, 62, 68, 75, 84), `89` = c(NA, 
83, 70, 78, 81), `90` = c(NA, 79, 75, 79, 106), `91` = c(NA, 
64, 67, 73, 95), `92` = c(NA, 68, 72, 77, 94), `93` = c(NA, 
79, 66, 71, 87), `94` = c(NA, 68, 75, 71, 89), `95` = c(NA, 
96, 68, 66, 95), `96` = c(NA, 95, 62, 70, 94), `97` = c(NA, 
95, 60, 75, 93), `98` = c(NA, 94, 61, 89, 92), `99` = c(NA, 
98, 61, 84, 98), `100` = c(NA, 96, 61, 72, 98), `101` = c(NA, 
105, 63, 68, 93), `102` = c(NA, 112, 62, 58, 94), `103` = c(NA, 
113, 60, 66, 89), `104` = c(NA, 91, 60, 60, 84), `105` = c(NA, 
89, 64, 65.1769714355469, 93), `106` = c(NA, 90, 70, 79, 
87), `107` = c(NA, 127, 62, 64, 78), `108` = c(NA, 127, 66, 
71, 83), `109` = c(NA, 144, 70, 60, 81), `110` = c(NA, 141, 
63, 58, 86), `111` = c(NA, 129, 91, 62, 77), `112` = c(NA, 
126, 59, 64, 94), `113` = c(NA, 125, 59, 63, 97), `114` = c(NA, 
128, 59, 61, 85), `115` = c(NA, 128, 58, 59, 80), `116` = c(NA, 
130, 59, 61, 87), `117` = c(NA, 123, 68, 61, 86), `118` = c(NA, 
125, 63, 64, 89), `119` = c(NA, 126, 59, 54, 87), `120` = c(NA, 
128, 56, 59, 85), `121` = c(NA, 122, 58, 57.6097602844238, 
79), `122` = c(NA, 122, 60, 55, 79), `123` = c(NA, 123, 67, 
56, 71), `124` = c(NA, 127, 60, 56, 75), `125` = c(NA, 107, 
64, 57, 71), `126` = c(NA, 127, 63, 56, 77), `127` = c(NA, 
119, 62, 55, 77), `128` = c(NA, 126, 63, 55, 72), `129` = c(NA, 
122, 63, 60, 85), `130` = c(NA, 125, 64, 58, 72), `131` = c(NA, 
124, 60, 75, 68), `132` = c(NA, 130, 65, 71, 69), `133` = c(NA, 
123, 74, 77, 70), `134` = c(NA, 107, 79, 63, 75), `135` = c(NA, 
122, 77, 86, 65), `136` = c(NA, 128, 79, 77, 69), `137` = c(NA, 
112, 65, 89, 77), `138` = c(NA, 122, 97, 64, 77), `139` = c(NA, 
119, 65, 57, 83), `140` = c(NA, 120, 92, 57, 89), `141` = c(NA, 
119, 74, 59, 78), `142` = c(NA, 116, 69, 60, 76), `143` = c(NA, 
122, 58, 58, 78), `144` = c(NA, 105, 65, 59, 72), `145` = c(NA, 
106, 62, 66, 78), `146` = c(NA, 118, 63, 65, 75), `147` = c(NA, 
107, 64, 63, 72), `148` = c(NA, 102, 58, 62, 70), `149` = c(NA, 
101, 60, 63, 78), `150` = c(NA, 139, 65, 63, 85), `151` = c(NA, 
140, 62, 72, 78), `152` = c(NA, 138, 58, 68, 81), `153` = c(NA, 
138, 59, 60, 77), `154` = c(NA, 137, 63, 60, 73), `155` = c(NA, 
130, 59, 69, 77), `156` = c(NA, 124, 55, 68, 82), `157` = c(NA, 
120, 61, 69, 74), `158` = c(NA, 119, 57, 61, 79), `159` = c(NA, 
110, 56, 62, 80), `160` = c(NA, 69, 57, 61, 79), `161` = c(NA, 
81, 62, 69, 80), `162` = c(NA, 87, 65, 74, 79), `163` = c(NA, 
101, 56, 58, 82), `164` = c(NA, 87, 56, 58, 67), `165` = c(NA, 
96, 61, 60, 79), `166` = c(NA, 79, 68, 60, 73), `167` = c(NA, 
79, 57, 59, 77), `168` = c(NA, 69.1876068115234, 57, 57, 
82), `169` = c(NA, 77, 55, 55, 73), `170` = c(NA, 75, 75, 
57, 69), `171` = c(NA, 73, 75, 55, 73), `172` = c(NA, 76, 
63, 57, 67), `173` = c(NA, 72, 55, 58, 82), `174` = c(NA, 
90, 56, 65, 72), `175` = c(NA, 81, 54, 60, 70), `176` = c(NA, 
83, 58, 65, 72), `177` = c(NA, 81, 63, 63, 84), `178` = c(NA, 
79, 59, 61, 74), `179` = c(NA, 163, 58, 86, 83), `180` = c(NA, 
96, 63, 70, 86), `181` = c(NA, 131, 66, 61, 81), `182` = c(NA, 
151, 68, 64, 71), `183` = c(NA, 151, 55, 68, 78), `184` = c(NA, 
167, 55, 74, 68), `185` = c(NA, 162, 54, 70, 68), `186` = c(NA, 
154, 52, 73, 72), `187` = c(NA, 153, 63, 67, 67), `188` = c(NA, 
157, 59, 64, 82), `189` = c(NA, 105, 64, 67, 70), `190` = c(NA, 
111, 83, 67, 68), `191` = c(NA, 102, 62, 66, 72), `192` = c(NA, 
97, 77, 64, 68), `193` = c(NA, 96, 86, 66, 68), `194` = c(NA, 
96.4385528564453, 75, 71, 70), `195` = c(NA, 94, 68, 78, 
72), `196` = c(NA, 96, 68, 92, 69), `197` = c(NA, 91, 68, 
105, 67), `198` = c(NA, 92, 70, 96, 63), `199` = c(NA, 91, 
70, 67, 60), `200` = c(NA, 90, 66, 64, 69), `201` = c(NA, 
85, 68, 60, 69), `202` = c(NA, 88, 62, 67, 61), `203` = c(NA, 
86, 116, 65, 66), `204` = c(NA, 85, 61, 66, 64), `205` = c(NA, 
88, 60, 67, 67), `206` = c(NA, 87, 63, 60, 69), `207` = c(NA, 
84, 64, 61, 66), `208` = c(NA, 70, 66, 64, 61), `209` = c(NA, 
77, 69, 55, 101), `210` = c(NA, 80, 74, 57, 58), `211` = c(NA, 
84, 71, 61, 69), `212` = c(NA, 71, 89, 55, 71), `213` = c(NA, 
70, 71, 75, 77), `214` = c(NA, 69, 76, 63, 76), `215` = c(NA, 
69, 78, 60, 74), `216` = c(NA, 68, 77, 58, 79), `217` = c(NA, 
70, 64, 64, 69), `218` = c(NA, 70, 89, 57, 68), `219` = c(NA, 
80, 121, 60, 96), `220` = c(NA, 73, 121, 60, 94), `221` = c(NA, 
69, 107, 95, 100), `222` = c(NA, 74, 93, 72, 87), `223` = c(NA, 
74, 125, 69, 103), `224` = c(NA, 68, 118, 67, 99), `225` = c(NA, 
78, 116, 71, 101), `226` = c(NA, 65, 116, 65, 99), `227` = c(NA, 
73, 118, 68, 100), `228` = c(NA, 68, 113, 62, 94), `229` = c(NA, 
72, 113, 67, 94), `230` = c(NA, 76, 114, 65, 100), `231` = c(NA, 
73, 119, 63, 101), `232` = c(NA, 69, 93, 64, 100), `233` = c(NA, 
72, 107, 66, 104), `234` = c(NA, 63, 108, 68, 85), `235` = c(NA, 
64, 78, 60, 105), `236` = c(NA, 67, 68, 56, 126), `237` = c(NA, 
73, 93, 60, 101), `238` = c(NA, 60, 95, 59, 112), `239` = c(NA, 
64, 104, 67, 122), `240` = c(NA, 68, 103, 74, 124), `241` = c(NA, 
62, 100, 74, 108), `242` = c(NA, 62, 102, 83, 120), `243` = c(NA, 
62, 106, 72, 122), `244` = c(NA, 67, 96, 70, 118), `245` = c(NA, 
61, 108, 68, 99), `246` = c(NA, 59, 107, 78, 113), `247` = c(NA, 
64, 108, 80, 114), `248` = c(NA, 62, 96, 76, 114), `249` = c(NA, 
62, 103, 79, 107), `250` = c(NA, 61, 113, 72, 96), `251` = c(NA, 
68, 108, 65, 82), `252` = c(NA, 63, 114, 66, 86), `253` = c(NA, 
64, 91, 64, 85), `254` = c(NA, 68, 91, 62, 113), `255` = c(NA, 
66, 89, 60, 114), `256` = c(NA, 63, 94, 56, 114), `257` = c(NA, 
57, 91, 56, 116), `258` = c(NA, 59, 104, 58, 113), `259` = c(NA, 
58, 101, 58, 119), `260` = c(NA, 61, 95, 59, 126), `261` = c(NA, 
61, 109, 59, 112), `262` = c(NA, 59, 109, 58, 104), `263` = c(NA, 
59, 105, 59, 96), `264` = c(NA, 58, 100, 63, 98), `265` = c(NA, 
62, 102, 60, 115), `266` = c(NA, 56, 113, 60, 101), `267` = c(NA, 
61, 105, 62, 94), `268` = c(NA, 58, 87, 63, 98), `269` = c(NA, 
61, 100, 59, 128), `270` = c(NA, 59, 93, 61, 127), `271` = c(NA, 
60, 93, 61, 121), `272` = c(NA, 60, 94, 61, 113), `273` = c(NA, 
58, 95, 60, 107), `274` = c(NA, 59, 99, 60, 92), `275` = c(NA, 
58, 99, NA, 104), `276` = c(NA, 56, 102, NA, 86), `277` = c(NA, 
55, 95, NA, 113), `278` = c(NA, 55, 95, NA, 131), `279` = c(NA, 
58, 94, NA, 107), `280` = c(NA, 57, 93, NA, 104), `281` = c(NA, 
62, 100, NA, 109), `282` = c(NA, 70, 131, NA, 124), `283` = c(NA, 
62, 126, NA, 119), `284` = c(NA, 56, 86, NA, 122), `285` = c(NA, 
59, 85, NA, 122), `286` = c(NA, 54, 115, NA, 104), `287` = c(NA, 
57, 101, NA, 91), `288` = c(NA, 87, 77, NA, 95), `289` = c(NA, 
90, 84, NA, 84), `290` = c(NA, 100, 77, NA, 102), `291` = c(NA, 
81, 104, NA, 102), `292` = c(NA, 61, 65, NA, 101), `293` = c(NA, 
95, 71, NA, 101), `294` = c(NA, 82, 78, NA, 107), `295` = c(NA, 
62, 59, NA, 106), `296` = c(NA, 72, 69, NA, 106), `297` = c(NA, 
69, 59, NA, 99), `298` = c(NA, 65, 61, NA, 148), `299` = c(NA, 
67, 60, NA, 118), `300` = c(NA, 59, 60, NA, 107), `301` = c(NA, 
83, 58, NA, 122), `302` = c(NA, 75, 60, NA, 126), `303` = c(NA, 
84, 59, NA, 121), `304` = c(NA, 55, 60, NA, 110), `305` = c(NA, 
73, 57, NA, 105), `306` = c(NA, 74, 57, NA, 79), `307` = c(NA, 
78, 64, NA, 71), `308` = c(NA, 68, 61, NA, 80), `309` = c(NA, 
69, 61, NA, 72), `310` = c(NA, 69, 59, NA, 72), `311` = c(NA, 
61, 58, NA, 83), `312` = c(NA, 60, 54, NA, 85), `313` = c(NA, 
58, 58, NA, 82), `314` = c(NA, 55, 58, NA, 86), `315` = c(NA, 
55, 56, NA, 82), `316` = c(NA, 56, 55, NA, 63), `317` = c(NA, 
56, 55, NA, 80), `318` = c(NA, 54, 55, NA, 57), `319` = c(NA, 
54, NA, NA, 98), `320` = c(NA, 54, NA, NA, 62), `321` = c(NA, 
52, NA, NA, 53), `322` = c(NA, 54, NA, NA, 52), `323` = c(NA, 
58, NA, NA, 52), `324` = c(NA, 62, NA, NA, 51), `325` = c(NA, 
60, NA, NA, 52), `326` = c(NA, 60, NA, NA, 54), `327` = c(NA, 
57, NA, NA, 51), `328` = c(NA, NA, NA, NA, 57), `329` = c(NA, 
NA, NA, NA, 57), `330` = c(NA, NA, NA, NA, 61), `331` = c(NA, 
NA, NA, NA, 62), `332` = c(NA, NA, NA, NA, 64), `333` = c(NA, 
NA, NA, NA, 64), `334` = c(NA, NA, NA, NA, 65), `335` = c(NA, 
NA, NA, NA, 61), `336` = c(NA, NA, NA, NA, 67), `337` = c(NA, 
NA, NA, NA, 73), `338` = c(NA, NA, NA, NA, 67), `339` = c(NA, 
NA, NA, NA, 65), `340` = c(NA, NA, NA, NA, 62), `341` = c(NA, 
NA, NA, NA, 66), `342` = c(NA, NA, NA, NA, 60), `343` = c(NA, 
NA, NA, NA, 62), `344` = c(NA, NA, NA, NA, 62), `345` = c(NA, 
NA, NA, NA, 61), `346` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `347` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `348` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `349` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `350` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `351` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `352` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `353` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `354` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `355` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `356` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `357` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `358` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `359` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `360` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `361` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `362` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `363` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `364` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `365` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `366` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `367` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `368` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `369` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `370` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `371` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `372` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `373` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `374` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `375` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `376` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `377` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `378` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `379` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `380` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `381` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `382` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `383` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `384` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `385` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `386` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `387` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `388` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `389` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `390` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `391` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `392` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `393` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `394` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `395` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `396` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `397` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `398` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `399` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `400` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `401` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `402` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `403` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `404` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `405` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_), `406` = c(NA_real_, NA_real_, NA_real_, 
NA_real_, NA_real_)), row.names = c(NA, 5L), class = "data.frame")
  • Hi & welcome. Could you please expand your question with a reproducible example like so: https://stackoverflow.com/a/5963610/6086135 ? Also check datapasta for sharing parts of your data easily: https://reprex.tidyverse.org/articles/articles/datapasta-reprex.html – Benjamin Schwetz Mar 20 '19 at 09:03
  • Hi, sorry I'm still new at this. I've tried providing dput() for the first five days of my data set – Mantas Zabarauskas Mar 20 '19 at 09:50

1 Answers1

0

rowSums is an R function, not SQL, and the select statement must use SQL syntax, not R code. Also SQL is normally used with normalized data, i.e. long form, not wide form.

In any case, the dates in the question are unique so it seems that you just want a plain rowSums.

toDate <- function(y, m, d) as.Date(paste(y, m, d, sep = "-"))
DF <- with(y_t, data.frame(date = toDate(year, month, day), 
  sum = rowSums(y_t[-(1:3)], na.rm = TRUE)))

You could alternately do this with zoo (using toDate from above):

library(zoo)

z0 <- read.zoo(y_t, index = 1:3, FUN = toDate)
z <- zoo(rowSums(z0, na.rm = TRUE), time(z0))

plot(z)

screenshot

G. Grothendieck
  • 254,981
  • 17
  • 203
  • 341
  • I think your code just adds up all the measurements instead of counting how many measurements were in one row. I need to later smooth the data and this is a prep step before that. I need the code to group the rows by the number of measurements in each and then smooth those groups separately – Mantas Zabarauskas Mar 20 '19 at 14:03
  • I had assumed the code in the question expressed your intention but if you are trying to count the number of non-NAs in each row then that would be `rowSums(!is.na(y_t[-(1:3)]))` – G. Grothendieck Mar 20 '19 at 16:24
  • Do you have any idea about how I could group days by the number of measurements and then smooth those groups separately with bspline? – Mantas Zabarauskas Mar 20 '19 at 16:35
  • I am not clear on what you want to do. You can use `tapply`, `ave` or `by` in base R to perform computations by group or use `group_by` in dplyr. – G. Grothendieck Mar 20 '19 at 16:38