g.detecmidnight = function(time, desiredtz, dayborder) {
# code in this function is able to deal with two types of timestamp format
convert2clock = function(x) { #ISO format
return(format(as.POSIXlt(x, format = "%Y-%m-%dT%H:%M:%S%z", tz = desiredtz), "%H:%M:%S"))
}
convert2clock_space = function(x) { #POSIX format
return(unlist(strsplit(x, " "))[2])
}
checkmidnight = function(x){
temp1 = as.numeric(unlist(strsplit(x, ":")))
return(sum(temp1 / c(1, 60, 3600)))
}
space = ifelse(length(unlist(strsplit(time[1], " "))) > 1,TRUE,FALSE)
if (space == TRUE) {
time_clock = sapply(time, FUN = convert2clock_space)
checkmidnight_out = lapply(time_clock, FUN = checkmidnight)
} else {
time_clock = convert2clock(time)
checkmidnight_out = unlist(lapply(time_clock, FUN = checkmidnight))
}
midn = which(checkmidnight_out == dayborder) #replaced "== 0" for "== dayborder" to work in any scenario
if (length(midn) == 0) { # measurement with no midnights, use last timestamp as dummy midnight for g.analyse() to work
midnights = time[length(time)]
midnightsi = length(time)
} else {
midnights = format(time[midn])
midnightsi = midn
}
if (length(midn) == 0) { # measurement with no midnights, use last timestamp as dummy midnight for g.analyse() to work
lastmidnight = time[length(time)]
lastmidnighti = length(time)
firstmidnight = time[1]
firstmidnighti = 1
} else {
lastmidnight = midnights[length(midnights)]
lastmidnighti = midnightsi[length(midnights)]
firstmidnight = midnights[1]
firstmidnighti = midnightsi[1]
}
invisible(list(firstmidnight = firstmidnight, firstmidnighti = firstmidnighti,
lastmidnight = lastmidnight, lastmidnighti = lastmidnighti,
midnights = midnights, midnightsi = midnightsi))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.