I have a large data.frame. The data.frame include a lot of values.
For example:
df <- data.frame(Company = c(\'A\', \'A\', \'B\', \'C\', \'A\', \'
One option is using data.table
library(data.table)
setDT(df)[, c(lapply(.SD[, c(2:3, 5), with = FALSE], mean),
.(Education.University = sum(Education.University))), by = Company]
# Company Age Wages Productivity Education.University
#1: A 27.00000 56666.67 102.6667 2
#2: B 28.66667 68333.33 111.6667 3
#3: C 29.00000 53333.33 101.6667 1
Or with dplyr
library(dplyr)
df %>%
group_by(Company) %>%
mutate(Education.University = sum(Education.University)) %>%
summarise_if(is.numeric, mean)
# A tibble: 3 x 5
# Company Age Wages Education.University Productivity
#
#1 A 27.00000 56666.67 2 102.6667
#2 B 28.66667 68333.33 3 111.6667
#3 C 29.00000 53333.33 1 101.6667