- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何通过完全外连接有效地合并两个 data.table
,同时通过在左侧和右侧滚动最后一个观察值 (LOCF) 来处理缺失值?
现实世界应用 - 有两个不一定交错的交易规则信号表,X
、Y
、持有(稀疏) 随时间变化的信号值。总体目标是定义复合信号,其中Signal.z = Signal.x AND Signal.y
X <- data.table(Instrument=rep("SPX",3)
, Date=as.IDate(c("2013-11-20","2013-11-22","2013-11-24"))
, Signal=c(TRUE,FALSE,TRUE), key=c("Instrument", "Date"))
Y <- data.table(Instrument=rep("SPX",3)
, Date=as.IDate(c("2013-11-21","2013-11-23","2013-11-25"))
, Signal=c(FALSE,TRUE,FALSE), key=c("Instrument", "Date"))
期望的结果:
Instrument Date Signal.x Signal.y Signal.z
1: SPX 2013-11-20 TRUE NA NA
2: SPX 2013-11-21 TRUE FALSE FALSE
3: SPX 2013-11-22 FALSE FALSE FALSE
4: SPX 2013-11-23 FALSE TRUE FALSE
5: SPX 2013-11-24 TRUE TRUE TRUE
6: SPX 2013-11-25 TRUE FALSE FALSE
最佳答案
也许是这样的:
dates = sort(c(X$Date, Y$Date))
setkey(X, Date)
setkey(Y, Date)
Z = X[J(dates), roll = T][,
Signal.y := Y[J(dates), roll = T]$Signal][,
Signal.z := as.logical(Signal * Signal.y)]
基于这个想法,以下是针对大型示例数据执行此操作的方法:
# assuming keys are set to Instrument, Date in both data.tables
Z = unique(setkey(rbind(setnames(X[Y, roll = T],
c("Instrument", "Date", "Signal.x", "Signal.y")),
setnames(Y[X, roll = T],
c("Instrument", "Date", "Signal.y", "Signal.x")),
use.names = TRUE),
Instrument, Date))[,
Signal.z := as.logical(Signal.x * Signal.y)]
关于r - 带双面卷的全外连接 (LOCF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20199374/
我想对一个变量进行最后一次观察,但最多只能进行 2 次观察。也就是说,对于 3 个或更多 NA 的数据差距,我只会将最后一个观察结果用于接下来的 2 个观察结果,而将其余的作为 NA。 如果我使用 z
如何通过完全外连接有效地合并两个 data.table,同时通过在左侧和右侧滚动最后一个观察值 (LOCF) 来处理缺失值? 现实世界应用 - 有两个不一定交错的交易规则信号表,X、Y、持有(稀疏)
我最近需要按 id 跨时间向前和向后分布 12 个时不变变量的值。我的数据集包含 2,448,638 个观测值和 57 个变量。 这是一个可重现的讨论示例: # Load packages libra
随着时间的推移,我已经习惯了 data.table 在 r 中滚动连接的非常有用的功能。这些利用 LOCF 的操作(最后的观察结转)。不幸的是,我被迫在一个我不太熟悉的环境中工作(使用 postgre
我现在正在处理一个有很多缺失值的数据集。我正在使用 LOCF 方法来替换缺失值(因为它是重复测量)。我用过 na.locf函数来替换缺失值。这是我在创建的数据帧上所做的模拟示例 library(zoo
我有以下时间序列 > y y[c(1,2,5,9,10)] y [,1] 2011-09-04 NA 2011-09-05 NA 2011-09-06 3 201
我是 R 的新手,试图在 sparkR 中重写 R 代码。对名为 costTbl(还有 5 个其他列)的 data.table 的操作之一是 costTbl[,cost:=na.locf(cost,n
在为时间序列分析格式化数据时,一个常见的需求是通过随时间填充前向值来估算缺失值(也称为 Last-Observation-Carried-Forward/LOCF )。 虽然数据分析环境通常提供该功能
我需要使用 na.locf来自 zoo用最后观察到的值替换 NA 值的包。但是,我只需要针对特定国家/地区和变量对执行此操作。这些对是使用单独的数据框在逻辑上指定的,其示例如下所示。 Countr
我想根据该 ID 本身前几年的组值将我的数据集的 NA 填充到组变量中。na.locf(newData, na.rm = TRUE) 部分代码不起作用。我认为这是因为输入不是数字。或者是另一回事?有谁
我目前正在处理一个大型 data.table,该表具有基于 2 个引用列的某些组,然后有一个距离列,该列为每个组中的第一行定义,然后每次跳转 2 个单位。 做一个非常小的可重现的例子,我有: refe
我正在尝试将 zoo 包中的 na.locf 与使用 dplyr 的分组数据结合使用。我在这个问题上使用第一个解决方案:Using dplyr window-functions to make tra
有没有什么快速的方法可以将 DataFrame 的 NA 值转换为最后观察到的值? using DataFrames d = @data [1,NA,5,NA,NA] df = DataFrame(d
我想使用 na.locf为第一个观察值可能为零的数据帧传递非缺失值。 问题 dta % mutate_all(.funs = funs(na.locf(.))) Error in mutate_imp
我想检查 na.locf 是否有任何预先存在的技巧(来自 zoo 包),rle和 inverse.rle在 RCpp ? 我写了一个循环来实现,例如我做了na.locf(x, na.rm=FALSE,
在PostgreSQL中是否实现了数据插补方法Last Observation Carried Forward (LOCF)? 如果没有,我该如何实现这个方法? 最佳答案 下面的代码假定一个表 tbl
我已经看到了一个解决方案,但不能让它为团体工作 ( Fill NA in a time series only to a limited number ),并认为必须有一种更简洁的方法来做到这一点?
我正在尝试填写所有 NA,除了第 1 列和第 4 列的前两个 NA 以及第 2 列和第 3 列的三个 NA 以及最近的非 NA 值。这是我的数据和代码: hh<-structure(list(ka
我是一名优秀的程序员,十分优秀!