2013-09-12 4 views
0

У меня есть файл данных в качестве следующего примера, но гораздо более крупнееКак вычислить среднее значение определенных строк в R?

names num Y1 Y2 
William 1 4.71 7.4 
William 2 3.75 8 
William 3 4.71 7.9 
Katja 1 5.83 8.5 
Katja 2 5.17 7.1 
Katja 3 6.08 7.4 
Aroma 1 4.04 7.5 
Aroma 2 5  6.9 
Aroma 3 4.3  7.9 
... 

Я должен вычислить среднее для каждой 3 из одних и тех же имен (первый столбец) для Y1 и Y2. А затем создайте гистограмму по среднему значению каждого имени с Y1 и Y2 отдельно. Таким образом, по оси x у меня будут имена, а на оси y - среднее. Может ли кто-нибудь помочь мне в этом?

+2

Добро пожаловать на SO! Пожалуйста, прочитайте [Как сделать отличный R воспроизводимый пример?] (Http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). Что вы пробовали? – sgibb

+0

Я очень новичок в r и попытался использовать среднее, но ничего не мог получить. Как использовать агрегат? – user2772716

ответ

5

Вы также можете использовать aggregate. См. ?aggregate для получения дополнительной информации.

> aggregate(.~names, FUN=mean, data=df[, -2]) 
    names  Y1  Y2 
1 Aroma 4.446667 7.433333 
2 Katja 5.693333 7.666667 
3 William 4.390000 7.766667 

Take a look at this post еще альтернативы взятия среднего для каждой группы.

Для баров использовать R base barplot функция, хотя есть и другие альтернативы, такие как графика ggplot2.

barplot(DF[,2], names.arg=DF$names, ylab="mean of Y1", las=1) # for Y1 
barplot(DF[,3], names.arg=DF$names, ylab="mean of Y2", las=1) # for Y2 

, которые производят:

enter image description here

Как вы новичок в R, рекомендую прочитать An introduction to R, который является хорошей отправной точкой, чтобы вы узнаете основы R.

0

sqldf Использование пакета (при условии, df ваша таблица)

library(sqldf) 
sqldf("SELECT names, avg(Y1) as mean_Y1, avg(Y2) as mean_Y2 FROM df GROUP BY names") 
+0

Непонятно? plz подробнее – user2772716

+0

Позволяет выполнять запросы SQL в кадрах данных. Таким образом, запрос разбивает таблицу на столбец имен, а затем извлекает имя, среднее значение Y1 и среднее значение Y2. –

Смежные вопросы