data.table 和 R 中的基数 - `|` 的含义

data.table and base in R - meaning of `|`

我在 R 中看到一个命令,我很难理解,也许有人可以启发我?

sample[, AGG := Reduce(`+`, .SD), .SDcols = agg]
  sample[, AGG_NEW := AGG]
subset = seq_len(nrow(sample))
sample[subset, val := (AGG_NEW >= (value) - 1)) | val ]

到目前为止我的解释是这样的:

从data.table sample,获取所有行subset(已定义),在这些行中改变列val然后我不确定是什么正在发生....

| 有什么作用?

第一行,

library(data.table)
sample[, AGG := Reduce(`+`, .SD), .SDcols = agg]

我们在 .SDcols 中指定感兴趣的列,即 agg(也许它是一个包含多个列的对象名称),

然后使用 Reduce 得到 Data.table (.SD) 子集的行向和 (+)。

在第二步中,复制列 'AGG' 以创建 'AGG_NEW'、

sample[, AGG_NEW := AGG]

然后我们传递一个索引,即 i 中的行序列(不确定为什么这里需要它),然后将 'val' 创建为逻辑向量

即使没有 'subset' 代码也应该可以工作,因为 'subset' 显示的是原始数据集行的完整序列

sample[,  val := (AGG_NEW >= (value) - 1)) | val ]

| 表示 OR 运算符,即满足 lhs 或 rhs 条件,则为 returns TRUE 否则为 FALSE