Чтобы воспроизвести ваш вывод (что сумма, не означает):
library(plyr)
ddply(a, .(), summarise, first=a+b, second=c+d)[,-1]
Он производит:
first second
1 5 15
2 7 10
3 9 8
4 11 6
Чтобы data.frame
со средними значениями:
ddply(a, .(), summarise, first=(a+b)/2, second=(c+d)/2)[,-1]
Выход:
first second
1 2.5 7.5
2 3.5 5.0
3 4.5 4.0
4 5.5 3.0
Если вы не знаете названия кода столбцы может следует изменить следующим образом:
ddply(a, .(), summarise, first=a[,1]+a[,2], second=a[,3]+a[,4])[,-1]
Здесь вы получаете доступ к столбцам по его заказу. Кроме того, вы можете просто запустить names(a) <- letters[1:4]
до ddply()
.
ddply
- очень гибкая функция, вы можете указать переменные группировки в качестве второго аргумента и получить сгруппированные результаты. Но если дело обстоит так же просто, как и в вопросе вы можете позвонить summarise
непосредственно:
summarise(a, first=a+b, second=c+d) # if you know columns' names
summarise(a, first=a[,1]+a[,2], second=a[,3]+a[,4]) # if you don't know columns' names
можно дублировать здесь http://stackoverflow.com/questions/5559467/how-to-merge-two-columns-in- r-with-a-specific-symbol взглянуть, что он может сделать то, что вам нужно –