2015-03-06 2 views
0

У меня есть следующий фреймворк. Это только голова, и есть 17 568 строк. Я хочу добавить новый столбец с именем «average_no_of_steps», значение которого будет равно среднему значению всех шагов, соответствующих интервалу в этой строке. Итак, как я могу это сделать?Добавление нового столбца в dataframe на основе нескольких столбцов

 steps   date  interval 
1 37.3826 2012-10-01    0  
2 37.3826 2012-10-01    5  
3 37.3826 2012-10-01   10  
4 37.3826 2012-10-01   15   
5 37.3826 2012-10-01   20  
6 37.3826 2012-10-01    0   
+0

Я использовал функцию ddply, но она возвращает фреймворк данных с только средними_значениями и интервалом. Я хочу, чтобы весь dataframe вместе с новым cloumn – Abhinav

+0

Пожалуйста, добавьте фрагмент кода, который вы использовали в своем вопросе. –

+0

Создайте новый dataframe, который будет содержать интервалы и их средние значения. Затем «слить» этот файл данных с вашим оригиналом на интервале. Паскаль предоставит код, поскольку я сгорел за неделю :-( –

ответ

0

Позволяет сделать образец данных, который воспроизводит ваш пример

library(dplyr) 
df <- data.frame(steps=rnorm(1000, mean=35, sd=45), 
      interval=sample(c(0,5,10,15), 1000, replace=T)) 

Теперь мы групповым переменной, которую вы хотите, чтобы агрегат, и, наконец, создать новый столбец, который будет рассматривать предыдущие группы, чтобы сделать агрегацию, оставив вам рамку данных с одинаковыми размерами.

df <- df %>% group_by(interval) %>% 
mutate(mean=mean(steps)) 
+2

Просьба включить объяснение того, что делает ваш код и как он отвечает на вопрос. Если вы получите фрагмент кода в качестве ответа, возможно, вы не знаете, что делать с Ответ должен дать OP и будущим посетителям руководство относительно того, как отлаживать и исправлять их проблемы. Указывая, что представляет собой идея вашего кода, очень помогает понять проблему и применить или изменить ваше решение. – Palec

+0

Что такое '% >% '? – Palec

+1

@Palec (и любые новички) это новая функция R, называемая каналом. Google для пакета R' magrittr', который объясняет, что он делает очень хорошо - вот ссылка: http: //cran.r-project .org/веб/пакеты/magrittr/виньетки/magrittr.html. –

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