Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
行之间的条件时间差。R&;dplyr/data.table_R_Data.table_Dplyr - Fatal编程技术网

行之间的条件时间差。R&;dplyr/data.table

行之间的条件时间差。R&;dplyr/data.table,r,data.table,dplyr,R,Data.table,Dplyr,因此,我有一个包含两列的数据框: set.seed(123) nrows <- 100 my_data <- data.frame(side = sample(c(-1, 1), nrows, replace = TRUE), value = 1:nrows) set.seed(123) nrows非等更新联接工作: library(data.table) setDT(my_data) my_data[, other_side :

因此,我有一个包含两列的数据框:

set.seed(123)
nrows   <- 100
my_data <- data.frame(side = sample(c(-1, 1), nrows, replace = TRUE),
                        value = 1:nrows)
set.seed(123)

nrows非等更新联接工作:

library(data.table)
setDT(my_data)
my_data[, other_side := -1*side ]

my_data[, v :=
  .SD[.SD, on=.(side = other_side, value < value), mult="last", i.value - x.value ]
]

# test
my_data[ res != v, .N ] # 0
库(data.table)
setDT(我的_数据)
my_数据[,另一侧:=-1*侧]
my_数据[,v:=
.SD[.SD,on=(side=另一侧,value
使用滚动连接也可能实现这一点

library(data.table)
setDT(my_data)
my_data[, other_side := -1*side ]

my_data[, v :=
  .SD[.SD, on=.(side = other_side, value < value), mult="last", i.value - x.value ]
]

# test
my_data[ res != v, .N ] # 0