Используя aggregate
:
aggregate(x$Frequency, by=list(Category=x$Category), FUN=sum)
Category x
1 First 30
2 Second 5
3 Third 34
(вложение комментария @thelatemail), aggregate
также имеет интерфейс формулы
aggregate(Frequency ~ Category, x, sum)
Или, если вы хотите для объединения нескольких столбцов вы можете использовать нотацию .
(работает для одного столбца тоже)
aggregate(. ~ Category, x, sum)
или tapply
:
tapply(x$Frequency, x$Category, FUN=sum)
First Second Third
30 5 34
Используя эти данные:
x <- data.frame(Category=factor(c("First", "First", "First", "Second",
"Third", "Third", "Second")),
Frequency=c(10,15,5,2,14,20,3))
Лучший инструмент рефакторинга является хорошим тестовым покрытием. Если Ваши тесты покрывают Ваш код и их всех прошлое, можно просто внести любые изменения, которые Вы хотите, и тесты найдут любые зависимости, которые Вы повредили. Это - главная причина, почему основанные на IDE инструменты рефакторинга менее распространены в Ruby, чем в другом месте.
ИДЕЯ IntelliJ с плагином Ruby поддерживает некоторые рефакторинги.
сопроводительный текст http://www.skavish.com/rubyrefactorings.png
Я верю сетевым бобам и затмеваю и поддерживаю некоторый рефакторинг в их 'рубиновом режиме' - также браузер кода emacs (ECB) и различные инструменты поддержки Ruby (например, rinari) для emacs имеют некоторую поддержку.
Aptana имеет некоторые простые инструменты рефакторинга. Я часто извлекаю в partials, и у них есть простой ярлык для того, чтобы вытащить вещи, создавая файл и вставляя правильный вызов в частичное. Не самое удивительное когда-либо, но это полезно
Существует также 3rdRail от CodeGear (от известности Delphi). Единственная выгода - то, что это не свободно.
Я использовал рефакторинг в netbeans. Я не нашел его, которые намного более полезный, чем находят и заменяют.