Я попробовал следующее. Почему я все еще получаю forcats
предупреждение?
# 1 Я выполняю
plotdata <- dplyr::filter(Marriage, FALSE) %>% count(officialTitle)
if (nrow(plotdata) > 0){
str <- paste("nrows > 0. Number of rows is ", nrow(plotdata))
print(str)
print(plotdata)
Но я получаю следующее:
[1] "nrows > 0. Number of rows is 1"
# A tibble: 1 x 2
officialTitle n
<fct> <int>
1 NA 0
Warning message:
Factor `officialTitle` contains implicit NA, consider using `forcats::fct_explicit_na`
# 2 Я обращаю внимание предупреждение и выполните следующее
plotdata <- dplyr::filter(Marriage, FALSE) %>% count(officialTitle)
plotdata$officialTitle <- fct_explicit_na(plotdata$officialTitle)
if (nrow(plotdata) > 0){
str <- paste("nrows > 0. Number of rows is ", nrow(plotdata))
print(str)
print(plotdata)
Это результат:
[1] "nrows > 0. Number of rows is 1"
# A tibble: 1 x 2
officialTitle n
<fct> <int>
1 (Missing) 0
Warning message:
Factor `officialTitle` contains implicit NA, consider using `forcats::fct_explicit_na`
# 3 Тогда я думаю, может быть, это не имеет ничего общего с forcats
, Я удаляю оператор forcats
и удаляю n из plotdata, ie
plotdata <- dplyr::filter(Marriage, FALSE) %>% count(officialTitle)
plotdata <- na.omit(plotdata)
if (nrow(plotdata) > 0){
str <- paste("nrows > 0. Number of rows is ", nrow(plotdata))
print(str)
print(plotdata)
Вывод следующий:
[1] "nrows < 0. Number of rows is 0"
# A tibble: 0 x 2
# ... with 2 variables: officialTitle <fct>, n <int>
Warning message:
Factor `officialTitle` contains implicit NA, consider using `forcats::fct_explicit_na`
Полный код:
# Load packages ----
library(shiny)
library(ggplot2)
library(dplyr)
library(scales)
library(treemapify)
library(forcats)
# Load data ----
data(Marriage, package="mosaicData")
plotdata <- dplyr::filter(Marriage, FALSE) %>% count(officialTitle)
#plotdata$officialTitle <- fct_explicit_na(plotdata$officialTitle)
plotdata <- na.omit(plotdata)
if (nrow(plotdata) > 0){
str <- paste("nrows > 0. Number of rows is ", nrow(plotdata))
print(str)
print(plotdata)
ggplot(plotdata,
aes(fill = officialTitle,
area = n,
label = officialTitle)) +
geom_treemap() +
geom_treemap_text(colour = "white",
place = "centre") +
labs(title = "Marriages by officiate") +
theme(legend.position = "none")
} else {
str <- paste("nrows < 0. Number of rows is ", nrow(plotdata))
print(str)
print(plotdata)
}