Ответ, предоставленный rcs, работает и прост. Однако, если вы работаете с большими наборами данных и нуждаетесь в повышении производительности, существует более быстрая альтернатива:
library(data.table)
data = data.table(Category=c("First","First","First","Second","Third", "Third", "Second"),
Frequency=c(10,15,5,2,14,20,3))
data[, sum(Frequency), by = Category]
# Category V1
# 1: First 30
# 2: Second 5
# 3: Third 34
system.time(data[, sum(Frequency), by = Category] )
# user system elapsed
# 0.008 0.001 0.009
Давайте сравним это с тем же, используя data.frame и выше:
data = data.frame(Category=c("First","First","First","Second","Third", "Third", "Second"),
Frequency=c(10,15,5,2,14,20,3))
system.time(aggregate(data$Frequency, by=list(Category=data$Category), FUN=sum))
# user system elapsed
# 0.008 0.000 0.015
И если вы хотите сохранить столбец, это синтаксис:
data[,list(Frequency=sum(Frequency)),by=Category]
# Category Frequency
# 1: First 30
# 2: Second 5
# 3: Third 34
Разница станет более заметной с более крупными наборами данных, как показывает следующий код:
data = data.table(Category=rep(c("First", "Second", "Third"), 100000),
Frequency=rnorm(100000))
system.time( data[,sum(Frequency),by=Category] )
# user system elapsed
# 0.055 0.004 0.059
data = data.frame(Category=rep(c("First", "Second", "Third"), 100000),
Frequency=rnorm(100000))
system.time( aggregate(data$Frequency, by=list(Category=data$Category), FUN=sum) )
# user system elapsed
# 0.287 0.010 0.296
Для множественных агрегаций вы можете комбинировать lapply
и .SD
следующим образом
data[, lapply(.SD, sum), by = Category]
# Category Frequency
# 1: First 30
# 2: Second 5
# 3: Third 34
Что относительно сценарий Автогорячей клавиши ?
В зависимости от сложности Ваших шаблонов, Вы могли или
я уверен, что первая опция будет работать. Я не попробовал второе.
Этот вопрос дает признак того, как сценарий AutoHotKey может быть записан для прислушиваний к хордам клавиатуры.
При использовании 2005 SSMS вверх, он имеет в созданной поддержке шаблонов. Это не точно полноценный макрос, но не, меньше это все еще довольно полезно.
синтаксис точно, поскольку Вы показали в своем первом фрагменте кода, и Вы просто нажимаете Ctrl+Shift+M для перевода в рабочее состояние диалогового окна, которое предлагает Вам, чтобы значения вошли в Ваши биты, включенные в угловые скобки.
SQL-сервер генерирует сценарий в этом формате, если Вы щелкаете правой кнопкой по таблице и избранной "Таблице сценария как" тогда выбор или вставка, обновляете или удаляете опцию.
можно также создать собственные шаблоны или изменить один из существующих, созданных в (нажмите выставленный для обозрения-> Шаблонный проводник для получения доступа к другим встроенным шаблонам).
существует короткая статья на MSDN, который объясняет, как начать с шаблонами.
Первый код является шаблоном от старо-хорошего MS Query Анализатор. Ярлык на заполнение Ctrl+M (но я не уверен, возможно, это - Ctrl+Shift+M).
в более новом SSMS должна быть та же функция.