Я использую пакет data.table в R, чтобы суммировать данные часто. В этом конкретном случае я просто подсчитываю количество вхождений в наборе данных для данных групп столбцов. Но у меня возникли проблемы с включением цикла, чтобы сделать это динамически.Как передать имя переменной столбца команде «by»?
Как правило, я бы обобщил данные следующим образом.
data <- data.table(mpg)
data.temp1 <- data[, .N, by="manufacturer,class"]
data.temp2 <- data[, .N, by="manufacturer,trans"]
Но теперь я хочу пройти через интересующие столбцы в моем наборе данных и сюжете. Вместо того, чтобы повторять код снова и снова, я хочу поместить его в цикл for. Что-то вроде этого:
columns <- c('class', 'trans')
for (i in 1:length(columns)) {
data.temp <- data[, .N, by=list(manufacturer,columns[i])]
#plot data
}
Если бы я хотел только столбец интереса, я мог бы сделать это в цикле, и она работает:
data.temp <- data[, .N, by=get(columns[i])]
Но если я хочу поставить в статическое имя столбца, как производитель, ломается. Я не могу понять, как смешивать статическое имя столбца вместе с динамическим. Я огляделся, но не могу найти ответа.
Поблагодарили бы за любые мысли!
Вы совершенно правы! Не знаю, как я это пропустил. Я думал, что я это пробовал. Благодаря! – AlexP