Создание нового Dataframe в R (включая mean, sd) без использования функции () - PullRequest
1 голос
/ 20 марта 2020

Для программирования класса мне нужно создать новый фрейм данных, включая столбцы для средних и SD. Вот что мы получили в качестве потенциального решения:

newData<- with(showerData, aggregate(showerTime, by = list("Fach" = discipline), FUN= mean))
newData$deviation<- with(showerData, aggregate(showerTime, by = list(discipline), FUN= sd)) [,2]
newData$upper<- newData$x + newData$deviation                    
newData$lower<- newData$x - newData$deviation
newData <-set_names(newData, c("discipline","mean","sd","upper","lower"))

Конечно, это прекрасно работает, но есть ли другой способ вместо использования функции with ()? Честно говоря, я не очень знаком с этим, и поэтому я бы определенно не использовал это на экзамене. Итак ... вы знаете другую функцию для решения этой проблемы? Спасибо за вашу помощь!

Ответы [ 2 ]

0 голосов
/ 20 марта 2020

Я не знаю, откуда вы получаете newData$x в кадре данных после aggregate, но эквивалент ваших команд, использующих dplyr, может быть:

library(dplyr)

showerData %>%
  group_by(discipline) %>%
  summarise(showerTime = mean(showerTime), 
            deviation = sd(showerTime)) %>%
  mutate(upper = x + deviation, 
        lower = x - deviation) %>%
  rename_all(~c("discipline","mean","sd","upper","lower"))
0 голосов
/ 20 марта 2020

Я думаю, что это будет делать то, что вы хотите

newData<- data.frame(discipline=aggregate(showerData$showerTime, by = list("Fach" = discipline), FUN= mean))
newData$deviation<- aggregate(showerData$showerTime, by = list(discipline), FUN= sd) [,2]
newData$upper<- newData$x + newData$deviation                    
newData$lower<- newData$x - newData$deviation
newData <-set_names(newData, c("discipline","mean","sd","upper","lower"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...