小编Dir*_*irk的帖子

R:使用data.table:=操作来计算新列

我们来看以下数据:

dt <- data.table(TICKER=c(rep("ABC",10),"DEF"),
        PERIOD=c(rep(as.Date("2010-12-31"),10),as.Date("2011-12-31")),
        DATE=as.Date(c("2010-01-05","2010-01-07","2010-01-08","2010-01-09","2010-01-10","2010-01-11","2010-01-13","2010-04-01","2010-04-02","2010-08-03","2011-02-05")),
        ID=c(1,2,1,3,1,2,1,1,2,2,1),VALUE=c(1.5,1.3,1.4,1.6,1.4,1.2,1.5,1.7,1.8,1.7,2.3))
setkey(dt,TICKER,PERIOD,ID,DATE)
Run Code Online (Sandbox Code Playgroud)

现在,对于每个股票代码/期间组合,我需要在新列中添加以下内容:

  • PRIORAVG:每个ID的最新VALUE的平均值,不包括当前ID,只要不超过180天.
  • PREV:来自相同ID的先前值.

结果应如下所示:

      TICKER     PERIOD       DATE ID VALUE PRIORAVG PREV
 [1,]    ABC 2010-12-31 2010-01-05  1   1.5       NA   NA
 [2,]    ABC 2010-12-31 2010-01-08  1   1.4     1.30  1.5
 [3,]    ABC 2010-12-31 2010-01-10  1   1.4     1.45  1.4
 [4,]    ABC 2010-12-31 2010-01-13  1   1.5     1.40  1.4
 [5,]    ABC 2010-12-31 2010-04-01  1   1.7     1.40  1.5
 [6,]    ABC 2010-12-31 2010-01-07  2   1.3     1.50   NA
 [7,]    ABC 2010-12-31 2010-01-11  2   1.2     1.50  1.3
 [8,]    ABC 2010-12-31 …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

BigQuery标准SQL中的REGEXP_MATCH

虽然BigQuery Standard SQL文档提到了函数REGEXP_MATCH[1],但在运行查询时似乎不可用,Web界面返回:

错误:找不到函数:REGEXP_MATCH

什么是使用它的替代方案?

[1] https://cloud.google.com/bigquery/sql-reference/functions-and-operators#regexp_match

google-bigquery

7
推荐指数
1
解决办法
9583
查看次数

标签 统计

data.table ×1

google-bigquery ×1

r ×1