Изменение значений подмножества столбцов в процентном формате
Я сгенерировал эту сводную таблицу на основе df ниже.
set.seed(1)
df <- data.frame(rep(
sample(c(2012,2016),10, replace = T)),
sample(c('Treat','Control'),10,replace = T),
runif(10,0,1),
runif(10,0,1),
runif(10,0,1))
colnames(df) <- c('Year','Group','V1','V2','V3')
summary.table = df %>%
group_by(Year, Group) %>%
group_by(N = n(), add = TRUE) %>%
summarise_all(funs(sd,median)) %>%
ungroup %>%
mutate(Year = ifelse(duplicated(Year),"",Year))
Есть ли способ, которым я мог бы отобразить значения, связанные с median
колонки в процентах?
Я не умела пользоваться mutate()
а также scales::percent()
только для подмножества столбцов (я не хочу делать это по отдельности, поскольку в исходном наборе данных будет больше столбцов, что делает эту процедуру недостаточно практичной.
Что я должен был сделать вместо этого, если я хотел изменить в соответствии с подмножеством строк?
Спасибо
РЕДАКТИРОВАТЬ:
А если бы это было так?
summary.table = df %>%
group_by(Year, Group) %>%
summarise_all(funs(median,sd)) %>%
gather(key, value, -Year, -Group) %>%
separate(key, into=c("var", "stat")) %>%
unite(stat_Group, stat, Group) %>%
spread(stat_Group, value) %>%
ungroup %>%
mutate(Year = ifelse(duplicated(Year),"",Year))
1 ответ
Нам нужно использовать percent
завернутый в median
summary.table <- df %>%
group_by(Year, Group) %>%
group_by(N = n(), add = TRUE) %>%
summarise_all(funs(sd=sd(.),median=scales::percent(median(.)))) %>%
ungroup %>%
mutate(Year = ifelse(duplicated(Year),"",Year))