2017-09-18 2 views
1

Ich habe die Werte einer Spalte mit dplyr zählen.Boxplot dplyr: Fehler: nicht-numerisches Argument zum binären Operator

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

Die resultierenden Daten sieht wie folgt aus:

# 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 

Jetzt habe ich eine Box-Plot der "n" Spalte machen wollen.

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

Aber ich habe dieses Ergebnis:

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

Jede Idee? Liegt es an der Funktion?

+0

Vielen Dank! Wenn ich das versuche, bekomme ich: 'Fehler in if (use.cols) {: Argument ist nicht als logisch interpretierbar. – Hadsga

+0

brauchst du wirklich boxplot? Können Sie bitte überprüfen, ich denke, dass Barplot mit dieser Art von Daten verwendet werden sollte – PoGibas

+0

Ein Histogramm/Barplot ist auch in Ordnung, aber es gibt das gleiche Problem. – Hadsga

Antwort

1

Pull die Spalte als numerischer Vektor und dann tun boxplot:

library(stringi) 
df <- data.frame(name = stri_rand_strings(10000, 2, pattern = '[a-z]')) 

df %>% select(name) %>% count(name) %>% pull(n) %>% boxplot() 
#          ^^^^^^ 

enter image description here

0

die Sie interessieren (es ist schwer zu wissen, ob es ohne Beispiel Daten arbeitet):

library(tidyverse) 

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