Я создал эту сводную таблицу на основе приведенного ниже 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))
median
в процентах? Медиана всегда составляет 50% от данных. - person Luís Telles   schedule 12.07.2017summary.table[,7:9]*100
? Или я неправильно понимаю, чего вы хотите? - person Luís Telles   schedule 12.07.2017for(i in 7:9){summary.table[,i] <- sapply(summary.table[,i], function(x) paste(x*100, '%'))}
- person Luís Telles   schedule 12.07.2017