Я не очень понимаю, как использовать .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?