в R функции, примененные к векторам и скалярам в data.table - PullRequest
0 голосов
/ 27 сентября 2018

Я хочу проверить свое понимание поведения data.table, потому что я пытаюсь угадать, как R будет вести себя при использовании функций на RHS оператора :=.

Любой нюанс в моих наблюдениях приветствуется (а также комментарии о том, как это соотносится с data.table и data.frame).

В основном я хочу выяснить, как узнать, когда:=, используемый с функциями, будет принимать ссылки на столбец в data.table (в RHS) как вектор каждого значения в столбце вместо простого применения функции по строке к каждому значению.

library(data.table)

dt <- data.table(x = c(-100,-50,0,50,100))

dt[,y := max(0,x)]
dt[,z := abs(x)]
dt[,sd := sd(x)]

Здесь min, кажется, превращает 0 и вектор всех значений x в один вектор, затем запускается на этом новом векторе.Более того, кажется, что в столбце x принимается каждое значение, а не только значение x в данной строке.

С другой стороны, abs возвращает только абсолютное значение x для этогострока.

А затем sd принимает в качестве аргумента весь столбец x (вместо применения по строке).

Нужно ли просто копаться в документации для функции, чтобы увидеть,он принимает атомарный аргумент против векторного аргумента и предполагает, что если функция принимает вектор, она будет применяться ко всему столбцу (и не будет применяться к каждой строке)?Это лучший способ, которым я могу это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...