簡體   English   中英

R 中的因子函數返回 NA

[英]Factor function in R returning NAs

我有一個包含“月”列和協調值的數據框。 創建圖表時,月份按字母順序排列。 我想使用 factor 函數對月份進行排序,但現在我的圖表只顯示了 5 月份和 'NAs'。

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 函數中,但它產生了相同的結果。 當我從“xnames”中刪除“May”時,圖表只顯示 NA。

在此處輸入圖片說明

我們看不到您的數據,但該行為表明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()

這給你這個:

在此處輸入圖片說明

...但是如果我們拼錯其中一個(比如在yums “Soup” 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()

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM