|
1 | 1 | g.analyse.perday = function(ndays, firstmidnighti, time, nfeatures,
|
2 | 2 | midnightsi, metashort, averageday,
|
3 | 3 | doiglevels, nfulldays,lastmidnight, ws3, ws2, qcheck,
|
4 |
| - fname, idloc, sensor.location, wdayname, tooshort, includedaycrit, |
| 4 | + fname, sensor.location, wdayname, tooshort, includedaycrit, |
5 | 5 | doquan, quantiletype, doilevels, domvpa,
|
6 | 6 | mvpanames, wdaycode, ID,
|
7 |
| - deviceSerialNumber, ExtFunColsi, myfun, desiredtz = "", |
| 7 | + deviceSerialNumber, ExtFunColsi, myfun, |
8 | 8 | params_247 = c(), params_phyact = c(),
|
| 9 | + params_general = c(), |
9 | 10 | ...) {
|
| 11 | + |
10 | 12 | #get input variables
|
11 | 13 | input = list(...)
|
12 | 14 |
|
@@ -50,7 +52,7 @@ g.analyse.perday = function(ndays, firstmidnighti, time, nfeatures,
|
50 | 52 | }
|
51 | 53 | unique_dates_recording = unique(as.Date(iso8601chartime2POSIX(time[c(seq(1, length(time),
|
52 | 54 | by = (3600/ws2) * 12),
|
53 |
| - length(time))], tz = desiredtz))) |
| 55 | + length(time))], tz = params_general[["desiredtz"]]))) |
54 | 56 | ExtFunColsi = ExtFunColsi - 1 # subtract 1 because code ignores timestamp
|
55 | 57 |
|
56 | 58 | for (di in 1:ndays) { #run through days
|
@@ -198,8 +200,23 @@ g.analyse.perday = function(ndays, firstmidnighti, time, nfeatures,
|
198 | 200 | daysummary[di,fi] = ID
|
199 | 201 | idremember = daysummary[di,fi]
|
200 | 202 | ds_names[fi] = "ID"; fi = fi + 1
|
201 |
| - daysummary[di,fi] = fname |
| 203 | + if (!is.null(params_general[["recording_split_times"]])) { |
| 204 | + filename = fname |
| 205 | + splitnames = getSplitNames(filename) |
| 206 | + segment_names = splitnames$segment_names |
| 207 | + filename = splitnames$filename |
| 208 | + } else { |
| 209 | + segment_names = NULL |
| 210 | + filename = fname |
| 211 | + } |
| 212 | + daysummary[di,fi] = filename |
202 | 213 | ds_names[fi] = "filename"; fi = fi + 1
|
| 214 | + if (!is.null(params_general[["recording_split_times"]]) && !is.null(segment_names)) { |
| 215 | + daysummary[di,fi] = segment_names[2] |
| 216 | + daysummary[di,fi + 1] = segment_names[3] |
| 217 | + ds_names[fi:(fi + 1)] = c("split1_name","split2_name") |
| 218 | + fi = fi + 2 |
| 219 | + } |
203 | 220 | calendardate = unlist(strsplit(as.character(vari[1,1])," "))[1]
|
204 | 221 | daysummary[di,fi] = calendardate
|
205 | 222 | daysummary[di,(fi + 1)] = sensor.location
|
@@ -342,17 +359,17 @@ g.analyse.perday = function(ndays, firstmidnighti, time, nfeatures,
|
342 | 359 | }
|
343 | 360 | } else {
|
344 | 361 | # When it is not the first day of recording
|
345 |
| - if (NRV == 23) { # day has 23 hours (assuming DST) |
| 362 | + if (NRV == 23 * 60 * (60/ws3)) { # day has 23 hours (assuming DST) |
346 | 363 | # Append data after 2nd hour
|
347 | 364 | startMissingHour = 2 * 60 * (60/ws3) + 1
|
348 | 365 | enMissingHour = 3 * 60 * (60/ws3)
|
349 | 366 | vari = rbind(vari[1:(startMissingHour - 1)], averageday[startMissingHour:enMissingHour, ],
|
350 |
| - vari[startMissingHour:nrow(vari),]) |
| 367 | + vari[startMissingHour:nrow(vari), , drop = FALSE]) |
351 | 368 | } else { # day has less than 24 hours for another reason
|
352 | 369 | # Append the average day to the end
|
353 | 370 | a56 = nrow(averageday) - abs(deltaLength) + 1
|
354 | 371 | a57 = nrow(averageday)
|
355 |
| - vari = rbind(vari,averageday[a56:a57,]) |
| 372 | + vari = rbind(vari, averageday[a56:a57, , drop = FALSE]) |
356 | 373 | }
|
357 | 374 | }
|
358 | 375 | } else if (deltaLength > 0) { # 25 hour days, assuming DST
|
|
0 commit comments