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()