具有不同行号的滚动数据集
Rolling dataset having different row numbers
我的示例数据如下。
有事件、日期时间和ten_minute。
日期时间的格式为"POSIXlt" "POSIXt"。十分钟只是 datetime 变量中分钟第一位的子串。
我想使用 R 生成多个滚动数据集。例如,Data_1 具有 ten_minute 值为 0、1、2 的行。Data_2 具有 ten_minute 的值为 1、2、3。(最后,Data_n 的值为 3、4、5。)我还想更改 window 的宽度。在此示例中,window 的宽度为 3。我想将宽度更改为 5、10 等
我自己尝试了一个多星期的 R 编码。但是我不知道该怎么做。
首先,生成你需要的windows的函数:
generate.windows <- function(vec.start, vec.numberofsets, vec.wdith) {
vec.sets <- vec.start:vec.numberofsets
lapply(vec.sets, function(n) {
seq(from = n, length.out = vec.wdith)})}
接下来提取每个window对应的data.frames:
# Assume your original data set is called df.data
list.windows <- generate.windows(1, 10, 3)
list.data.frames <- lapply(list.windows, function(n) {df.data[df.data[,"Ten_minute"] %in% n,]}
我的示例数据如下。 有事件、日期时间和ten_minute。 日期时间的格式为"POSIXlt" "POSIXt"。十分钟只是 datetime 变量中分钟第一位的子串。
我想使用 R 生成多个滚动数据集。例如,Data_1 具有 ten_minute 值为 0、1、2 的行。Data_2 具有 ten_minute 的值为 1、2、3。(最后,Data_n 的值为 3、4、5。)我还想更改 window 的宽度。在此示例中,window 的宽度为 3。我想将宽度更改为 5、10 等
我自己尝试了一个多星期的 R 编码。但是我不知道该怎么做。
首先,生成你需要的windows的函数:
generate.windows <- function(vec.start, vec.numberofsets, vec.wdith) {
vec.sets <- vec.start:vec.numberofsets
lapply(vec.sets, function(n) {
seq(from = n, length.out = vec.wdith)})}
接下来提取每个window对应的data.frames:
# Assume your original data set is called df.data
list.windows <- generate.windows(1, 10, 3)
list.data.frames <- lapply(list.windows, function(n) {df.data[df.data[,"Ten_minute"] %in% n,]}