Использование ggplot для создания гистограммы выбранных строк большого csv-файла

#r #csv #ggplot2

#r #csv #ggplot2

Вопрос:

Я пытаюсь использовать R и ggplot для создания гистограмм количества частот слов из большой электронной таблицы, вместо того, чтобы использовать для этого Excel. Я написал функцию для извлечения первой строки (для периодов времени), а затем требуемой строки из файла csv, чтобы создать новый фрейм данных с этим в двух столбцах, а затем отобразить эти данные в виде гистограммы. Однако созданный график имеет ось y без линейного масштаба. Кто-нибудь может помочь мне объяснить, почему это так и как это исправить? (в идеале более простое решение!)

Функция выглядит следующим образом, где ‘term’ указывает строку файла csv (‘data’) Меня интересует:

 make_plot <- function(data, term){
  periods = data[1,]
  results = data[data$V1 == term,]
  df = merge(x=results, y=periods, all.x=TRUE, all.y=TRUE)
  df = as.data.frame(t(df))
  df = df[-1,]
  plot = ggplot(df, aes(V1, V2))   geom_col()   labs(x="Period", y="Freq")   theme(axis.text.x = element_text(angle = 90))
  return(df)
}
  

Это дает фрейм данных, который выглядит следующим образом:

 > head(df)
            V1   V2
V2 Freq_2014q4 2226
V3 Freq_2015q1 2444
V4 Freq_2015q2 2088
V5 Freq_2015q3 2688
V6 Freq_2015q4 2804
V7 Freq_2016q1 8794
  

И вот такой график:
введите описание изображения здесь

Комментарии:

1. Попробуйте добавить df$V2 = as.numeric(df$V2) перед plot строкой.

2. Спасибо. Это изменяет ось y, но, похоже, изменяет значения в V2 на гораздо меньшие числа? Если я этого не сделаю и спрошу класс V2, он сообщает об этом как «фактор» — есть ли способ изменить это на числовое и сохранить исходное правильное значение?

3. Я обнаружил, что это необходимо сделать as.numeric(as.character(df$V2)) , и это работает сейчас. Спасибо за вашу помощь.