Вычислить процентную статистику по столбцу в фрейме данных (табличная функция, дополненная процентами)

Это простой вопрос, но я не мог понять, как использовать для этого prop.table, а мне эта функциональность нужна очень-очень часто.

У меня есть такие данные

> library(ggplot2)

> #sample data(tips is a dataset within the ggplot2 package)
> head(tips,3)
  total_bill tip    sex smoker day   time size
1         17 1.0 Female     No Sun Dinner    2
2         10 1.7   Male     No Sun Dinner    3
3         21 3.5   Male     No Sun Dinner    3
> #how often there is a non-smoker
> table(tips$smoker)

 No Yes 
151  93 
> #how many subjects
> nrow(tips)
[1] 244

И мне нужно знать процентное соотношение курящих и некурящих Что-то вроде этого (уродливый код):

> #percentage of smokers
> options(digits=2)
> transform(as.data.frame(table(tips$smoker)),percentage_column=Freq/nrow(tips)*100)
  Var1 Freq percentage_column
1   No  151                62
2  Yes   93                38
> 

Есть ли лучший способ сделать это?

(еще лучше было бы сделать это на наборе столбцов (которые я перечисляю) и иметь несколько красиво отформатированный вывод) (например, курильщик, день и время)

30
задан zx8754 7 November 2019 в 07:48
поделиться