я набор данных как этотR колонки означают фактором
data
name v1 v2 v3 v4 v5
a 1 2 7 9 3
b 3 8 6 4 8
c 2 5 0 1 9
a 6 0 6 2 1
c 3 9 4 7 5
name
является переменным фактором. Я хочу рассчитать среднее значение v2,v3,v4,v5
по коэффициенту data$name
. Я использовал следующую команду, но это не сработало.
tapply(data[,3:6],data$name,mean)
Теперь, я использовал следующий код
newdata<-0
for (name in unique(data$name)){
rowIndex <- which(data$name == name)
result <- colMeans(data[rowIndex,])
newdata[name,]<-result
}
Требуемый результат получается. Но я хочу знать, есть ли какой-то гладкий метод для этого.
Try 'библиотека (data.table); setDT (data) [, lapply (.SD, mean), by = name, .SDcols = paste0 ("v", 2: 5)] '(не тестировалось) –
Ваш пример кода не работает. Можете ли вы опубликовать свой ожидаемый результат? – A5C1D2H2I1M1N2O1R2T1
Я добавил ожидаемый результат в вопрос. – Prabhu