Boxplot DLYR: Fout: niet-numeriek argument voor binaire operator

Ik heb de waarden van een kolom met DPLYR.

yelp_tbl %>% select(name) %>% count(name)

De resulterende data ziet er als volgt uit:

# A tibble: 108,999 x 2
                                  name     n
                                  <chr> <int>
 1                    'do blow dry bar     1
 2                  'Round Table Tours     1
 3                      'S Hundehüttle     1
 4                           # 1 Nails     1
 5 #1 Cochran Buick GMC of Monroeville     1
 6    #1 Cochran Buick GMC of Robinson     1
 7   #1 Cochran Cadillac - Monroeville     2

Nu wil ik een boxplot van de kolom “N” maken.

yelp_tbl %>% select(name) %>% count(name) %>% boxplot(n)

Maar ik heb dit resultaat:

Error in x[floor(d)] + x[ceiling(d)] : 
non-numeric argument to binary operator

Enig idee? Is het vanwege de functie?


Antwoord 1, Autoriteit 100%

Trek de kolom uit als een numerieke vector en doe dan boxplot:

library(stringi)
df <- data.frame(name = stri_rand_strings(10000, 2, pattern = '[a-z]'))
df %>% select(name) %>% count(name) %>% pull(n) %>% boxplot()
#                                       ^^^^^^


Antwoord 2

Probeer dit (het is moeilijk om te weten of het werkt zonder voorbeeldgegevens):

library(tidyverse)
yelp_tbl %>% 
    select(name) %>% 
    count(name) %>%
    ggplot(aes(name, n)) + 
        geom_bar(stat = "identity", position = "dodge")

Antwoord 3

Probeer te wisselen tussen de x- en y-as om te zien of het andersom werkt met boxplot(), of gebruik een andere functie zoals ggplot() + geom_boxplot()

Voorbeeld:

boxplot(yelp_tbl, aes(x = n, y = name)) 

of

yelp_tbl %>% ggplot(aes(n, name)) + geom_boxplot()

Other episodes