У меня есть таблица, которая имеет формат в соответствии с
user data 1234 42 1234 51 1234 50 1235 61 1235 55
Я хочу создать гистограмму усредненных «данных» на основе данных пользователя. Другими словами, я хотел бы объединить строки таблицы с одинаковыми значениями userID и получить среднее значение для них. Как бы я сделал это на большом наборе данных?
userID
Просто используйте tapply (при условии, что ваш исходный фрейм данных называется dat):
tapply
dat
avgdata=tapply(dat$data,dat$user,FUN=mean) hist(avgdata)
Во-первых, давайте воспроизведем ваши данные:
user <- c(rep("1234", 3), rep("1235", 2)) data <- c(42, 51, 50, 61, 55) df <- data.frame(user, data)
Теперь для однострочного решения:
aggregate(data ~ user, df, mean)
user_mean = tapply(data, user, mean) hist(user_mean, breaks = 30)