data.table и base в R - значение `|` - PullRequest
2 голосов
/ 17 апреля 2020

Я столкнулся с командой в 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 тогда я не уверен, что происходит ...

что делает |?

1 Ответ

1 голос
/ 17 апреля 2020

В первой строке

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

мы указываем интересующие столбцы в .SDcols т.е. agg (возможно, это имя объекта с несколькими столбцами),

Тогда используйте Reduce, чтобы получить сумму строк (+) Подмножества Data.table (.SD).

На втором шаге столбец 'AGG' копируется для создания 'AGG_NEW',

sample[, AGG_NEW := AGG]

, затем мы передаем индекс, то есть последовательность строк в i (не конечно, зачем это нужно здесь), затем создайте 'val' как логический вектор

Даже без «подмножества» код должен работать, потому что «подмножество» показало полную последовательность строк исходного набора данных

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

| означает оператор OR, т. Е. Либо выполняется условие lhs ИЛИ rhs, затем возвращается TRUE, либо FALSE

...