Я не очень понимаю, как использовать .SD
и by
.
Например, означает ли следующий ниже фрагмент: "изменить все столбцы в DT
на коэффициент, кроме A
и B
? ' Он также говорит в руководстве data.table
:" .SD
относится к подмножеству data.table
для каждой группы (исключая столбцы группировки)" - поэтому столбцы A
и B
исключены?
DT = DT[ ,lapply(.SD, as.factor), by=.(A,B)]
Однако, я также читал, что by
означает, что "group by" в SQL, когда вы выполняете агрегацию. Например, если я хотел бы суммировать (например, colsum
в SQL) по всем столбцам, кроме A
и B
, я все еще использую нечто подобное? Или в этом случае, означает ли нижний код, чтобы взять сумму и группу по значениям в столбцах A
и B
? (возьмите сумму и группу через A,B
, как в SQL)
DT[,lapply(.SD,sum),by=.(A,B)]
Затем, как сделать простой colsum
по всем столбцам, кроме A
и B
?