Boxplot dplyr:错误:二元运算符的非数字参数

时间:2017-09-18 15:16:16

标签: r ggplot2 dplyr

我用dplyr计算了一列的值。

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

结果数据如下所示:

# 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

现在我想制作一个&#34; n&#34;的盒子图。列。

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

但我得到了这个结果:

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

任何想法?是因为这个功能吗?

3 个答案:

答案 0 :(得分:1)

将列拉出作为数字向量,然后执行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

答案 1 :(得分:0)

试试这个(很难知道它是否在没有示例数据的情况下工作):

=COUNTIFS(Summary!P:P,"file not validated",Summary!F:F,"<="&DATE(YEAR(U$1),MONTH(U$1)+1,DAY(U$1))-31)

答案 2 :(得分:0)

尝试使用boxplot()在x轴和y轴之间进行切换,以查看它是否以其他方式起作用,或者使用ggplot()+ geom_boxplot()之类的其他函数

示例:

output_df = pd.concat(dfs[1:], axis=0)
output_df.to_csv('output.csv')

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