相关疑难解决方法(0)

滚动连接:向前和向后滚动

data.table很棒,因为我可以做滚动连接,甚至可以在组内滚动连接!

library(data.table)
set.seed(42)
metrics <- data.frame(
  ID=c(rep(1, 10), rep(2,5), rep(3,5)),
  Time=c(1:10, 4:8, 8:12),
  val1=runif(20),
  val2=runif(20),
  val3=runif(20),
  val4=runif(20)
  )
metrics <- data.table(metrics[sample(1:nrow(metrics), 15),], key=c('ID', 'Time'))
calendar <- data.table(expand.grid(ID=1:3, Time=1:12), key=c('ID', 'Time'))

metrics[calendar,roll=TRUE]
Run Code Online (Sandbox Code Playgroud)

但是,这对我来说不够好.这data.table还有NAs:

> metrics[calendar,roll=TRUE]
    ID Time      val1      val2      val3        val4
 1:  1    1 0.9148060 0.9040314 0.3795592 0.675607275
 2:  1    2 0.9370754 0.1387102 0.4357716 0.982817198
 3:  1    3 0.9370754 0.1387102 0.4357716 0.982817198
 4:  1    4 0.8304476 0.9466682 0.9735399 0.566488424
 5:  1    5 0.8304476 0.9466682 0.9735399 0.566488424 …
Run Code Online (Sandbox Code Playgroud)

r data.table

16
推荐指数
2
解决办法
2256
查看次数

如何使用data.table获取滚动产品

dt <- data.table(x=c(1, .9, .8, .75, .5, .1))
dt
      x
1: 1.00
2: 0.90
3: 0.80
4: 0.75
5: 0.50
6: 0.10
Run Code Online (Sandbox Code Playgroud)

对于每一行,如何获取该行和接下来两行的x乘积?

      x Prod.3
1: 1.00 0.7200
2: 0.90 0.5400
3: 0.80 0.3000
4: 0.75 0.0375
5: 0.50     NA
6: 0.10     NA
Run Code Online (Sandbox Code Playgroud)

更一般地说,对于每一行,如何获得该行和接下来的n行的x乘积?

r data.table

11
推荐指数
3
解决办法
3056
查看次数

R如何识别最后一次出现的距离

我想计算一下发生了多长时间.

鉴于以下情况,您可以看到灯光在某些时间点亮,但并非在所有时间点亮.我想规范化数据以将其提供给神经网络.

library(data.table)
d<-data.table(
    date = c("6/1/2013", "6/2/2013","6/3/2013","6/4/2013"),
    light = c(TRUE,FALSE,FALSE,TRUE) 
)
d
       date light
1: 6/1/2013  TRUE
2: 6/2/2013 FALSE
3: 6/3/2013 FALSE
4: 6/4/2013  TRUE
Run Code Online (Sandbox Code Playgroud)

我想要计算的是另一列显示与最后一次出现的"距离".

所以对于上面的数据:第一行,因为它上面应该是零第二行,应该是第三行,应该是第二行,应该是零

r data.table

6
推荐指数
2
解决办法
212
查看次数

标签 统计

data.table ×3

r ×3