Факторная функция в R возвращающих НС - PullRequest
0 голосов
/ 24 марта 2020

У меня есть фрейм данных со столбцом «месяцев» и координирующих значений. Когда я создаю график, месяцы располагаются в алфавитном порядке. Я хочу упорядочить месяцы, используя фактор-функцию, но теперь мой график показывает только майский месяц и «NA».

xnames<-c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
Data$Month<-factor(Data$Month, levels = xnames)
ggplot(DAtaTidy_MergeRWPeaks2, (aes(x=factor(Month, xnames), y=Volume)), na.rm=TRUE) + 
    geom_bar() 

Я пытался встроить фактор в функцию ggplot, но он дал тот же результат. Когда я удаляю «May» из «xnames», на графике отображаются только NA.

enter image description here

1 Ответ

1 голос
/ 24 марта 2020

Мы не можем видеть ваши данные, но поведение указывает на Data$Month, содержащее значение, которое не входит в ваш термин уровня xnames. Есть что-нибудь с ошибками? Я бы посоветовал вам сравнить levels(as.factor(Data$Month)) и xnames - это точно покажет вам проблему.

Пример набора данных, который показывает ту же проблему, что и у вас:

yums <- c('soup', 'salad', 'bread')
nums <- c(10, 14, 5)
df1 <- data.frame(yums, nums)

yum.levels <- c('soup', 'salad', 'bread', 'pasta')
ggplot(df1, aes(x=factor(yums, yum.levels), y=nums)) + geom_col()

Это дает вам это :

enter image description here

... но если мы неправильно введем одну из них (например, заглавную "Суп" в yums), вы получите:

yums1 <- c('Soup', 'salad', 'bread')
nums <- c(10, 14, 5)
df2 <- data.frame(yums1, nums)

yum.levels <- c('soup', 'salad', 'bread', 'pasta')
ggplot(df2, aes(x=factor(yums1, yum.levels), y=nums)) + geom_col()

enter image description here

...