Как построить таблицу, содержащую подсчеты по классам в R?

#r #plot

Вопрос:

Как вы визуализируете в R такого рода таблицу, где x-класс, а y-количество случаев в классе? Я хочу визуализировать распределение, но все, что мне удается сделать, — это гистограмма (поместить y в вектор), поэтому она не использует информацию о x. Я могу добавить теги позже, но есть ли лучший способ продолжить и напрямую использовать этот формат. Кроме того, если у меня тысячи классов, как я могу просто разместить их в ячейках большего размера, чем та, что в таблице? (пример здесь это может быть построение только двух классов <50 и >50).

 x   y
100 1954
90  106
80  700
70  27
60  861
50  32
40  5491
30  936
20  7364
10  408
 

Ответ №1:

Вы можете использовать barplot

 barplot(y~x, df)
 

Или в ggplot2

 library(ggplot2)
ggplot(df, aes(x, y))   geom_col()
 

Если вам нужны только две категории, вы можете создать новый столбец, а затем использовать aggregate его .

 df$class <- ifelse(df$x > 50, 'less than 50', 'higher than 50')
barplot(y~class, aggregate(y~class, df, sum))
 

Ответ №2:

Следуя словам @Ronak Shah, вы можете составить график. Для многих классов вы можете использовать cut . Например, разделите ваши данные как >50 и >,

 df %>%
  mutate(grp = cut(V1,2)) %>%
  ggplot(aes(grp, V2))   geom_col()
 

составим гистограмму.введите описание изображения здесь

Если ваш первый столбец является фактором в ваших данных, вам, возможно, потребуется добавить as.numeric(first column) его перед этим.