Образец данных:После поворота df, использующего сбор и распространение, я могу упорядочить строки на основе новой переменной Var?
sample_data <- data.frame(
Device = c("Desktop", "Desktop", "Desktop", "Tablet", "Tablet", "Tablet", "Mobile", "Mobile", "Mobile"),
Date_Range = seq(as.Date("2017-01-01"), as.Date("2017-01-30"), by = 1),
Sessions = ceiling(rnorm(90, mean = 3000, sd = 300)),
Conversion1 = ceiling(rnorm(90, mean = 800, sd = 100)),
Conversion2 = ceiling(rnorm(90, mean = 400, sd = 50))
)
Некоторые споры с dplyr
library(dplyr)
example <- tbl_df(sample_data) %>%
group_by(Date_Range) %>%
summarize(Sessions = sum(Sessions),
Con1 = sum(Conversion1),
Con2 = sum(Conversion2)) %>%
mutate(Registration_Rate = round(Con1/Sessions,2),
Conversion_Rate = round(Con2/Sessions,2)) %>%
gather(Var, Val, - Date_Range) %>%
group_by(Date_Range) %>%
spread(Date_Range, Val)
Это приводит к слева направо тенденции чтения, по дате, по КПЭ, включая сеансы, преобразования и в результате коэффициент конверсии.
Я хотел бы заказать эти строки. В настоящее время порядок строк читается:
Con1, Con2, Conversion_Rate, Registration_Rate, Sessions (Похоже, что это в алфавитном порядке).
В частности, мне бы хотелось, чтобы таблица была в следующем порядке: Сессии, Con1, Con2, Registration_Rate, Conversion_Rate.
Я посмотрел на row.names (пример), но возвращает символ символов 1: 5 (символ да).
В идеале я мог бы сортировать строки по переменной Var, созданной во время операции gather(). Поэтому сортируйте их по имени, а не по индексу. Но не в жертву простоты.
Есть ли прямой способ для этого?
Это замечательно! Большое спасибо. –