"other" 变成 "NA"

"other" turn into "NA"

我有一个 data.frame (DL),其中一个列名是 fruit,就像 c("apple", "lemon", "orange", "others") 所以我想更改此列的级别,以便图例的顺序(当我创建绘图时)将遵循我想要的顺序。这是我的代码

DL$fruit <- factor(DL$fruit, levels=c("lemon", "apple",  "orange", "others"))

但是当我在此之后使用 View(DL) 查看此数据时,"others" 将变为 "NA"。当我对它进行 ggplot 时,它不会显示 "others" 的条形图。有谁知道发生了什么以及如何解决它?谢谢

如果您的数据不是很干净,有时会发生这种情况,例如,如果您在输入值周围有多余的空格。

这是一个例子:

fruit <- c("apple", "lemon", "orange", "others", "others ") ## note the last two values
factor(fruit, levels=c("lemon", "apple",  "orange", "others"))
# [1] apple  lemon  orange others <NA>  
# Levels: lemon apple orange others

现在,让我们去掉空格:

newFruit <- gsub("^\s+|\s+$", "", fruit)
factor(newFruit, levels = unique(newFruit))
# [1] apple  lemon  orange others others
# Levels: apple lemon orange others

如果您想检查源数据并查找空格,有时使用 printquote = TRUE:

会有所帮助
print(fruit, quote = TRUE)
# [1] "apple"   "lemon"   "orange"  "others"  "others "

或者,grepl 也可以使用:

grepl("^\s+|\s+$", fruit)
# [1] FALSE FALSE FALSE FALSE  TRUE