在waffle()函数中使用数据框时出错

时间:2018-05-17 10:38:25

标签: r waffle-chart

我正在尝试使用waffle包绘制一些数据但是当我使用data.frame作为parts函数的waffle()参数时,我收到以下错误消息。

Example taken from github

parts <- data.frame(
  names = LETTERS[1:4],
  vals = c(80, 30, 20, 10)
)

library(waffle)
waffle(parts, rows = 8)
  

FUN(X [[i]],...)出错:     (list)对象无法强制键入&#39; double&#39;

查看the source code of waffle(),可以找到以下代码行

if (inherits(parts, "data.frame")) {
  stats::setNames(
    unlist(parts[, 2], use.names = FALSE),
    unlist(parts[, 1], use.names = FALSE)
  ) -> parts
}

运行之后,我们最终得到一个命名向量,该函数按预期工作

waffle(parts, rows = 8)

首先出现错误的原因是什么?谢谢。

会话信息

devtools::session_info()
#Session info -----------------------------------------------------------------------------------------------------------
#setting  value                       
#version  R version 3.5.0 (2018-04-23)
#system   x86_64, mingw32             
#ui       RStudio (1.1.447)           
#language (EN)                        
#collate  German_Germany.1252         
#tz       Europe/Berlin               
#date     2018-05-17                  
#
#Packages ---------------------------------------------------------------------------------------------------------------
#package      * version date       source        
#base         * 3.5.0   2018-04-23 local         
#colorspace     1.3-2   2016-12-14 CRAN (R 3.5.0)
#compiler       3.5.0   2018-04-23 local         
#datasets     * 3.5.0   2018-04-23 local         
#devtools       1.13.5  2018-02-18 CRAN (R 3.5.0)
#digest         0.6.15  2018-01-28 CRAN (R 3.5.0)
#extrafont      0.17    2014-12-08 CRAN (R 3.5.0)
#extrafontdb    1.0     2012-06-11 CRAN (R 3.5.0)
#ggplot2      * 2.2.1   2016-12-30 CRAN (R 3.5.0)
#graphics     * 3.5.0   2018-04-23 local         
#grDevices    * 3.5.0   2018-04-23 local         
#grid           3.5.0   2018-04-23 local         
#gridExtra      2.3     2017-09-09 CRAN (R 3.5.0)
#gtable         0.2.0   2016-02-26 CRAN (R 3.5.0)
#lazyeval       0.2.1   2017-10-29 CRAN (R 3.5.0)
#memoise        1.1.0   2017-04-21 CRAN (R 3.5.0)
#methods      * 3.5.0   2018-04-23 local         
#munsell        0.4.3   2016-02-13 CRAN (R 3.5.0)
#pillar         1.2.2   2018-04-26 CRAN (R 3.5.0)
#plyr           1.8.4   2016-06-08 CRAN (R 3.5.0)
#RColorBrewer   1.1-2   2014-12-07 CRAN (R 3.5.0)
#Rcpp           0.12.16 2018-03-13 CRAN (R 3.5.0)
#rlang          0.2.0   2018-02-20 CRAN (R 3.5.0)
#Rttf2pt1       1.3.6   2018-02-22 CRAN (R 3.5.0)
#scales         0.5.0   2017-08-24 CRAN (R 3.5.0)
#stats        * 3.5.0   2018-04-23 local         
#tibble         1.4.2   2018-01-22 CRAN (R 3.5.0)
#tools          3.5.0   2018-04-23 local         
#utils        * 3.5.0   2018-04-23 local         
#waffle       * 0.7.0   2017-01-07 CRAN (R 3.5.0)
#withr          2.1.2   2018-03-15 CRAN (R 3.5.0)
#yaml           2.1.19  2018-05-01 CRAN (R 3.5.0)

1 个答案:

答案 0 :(得分:1)

刚才意识到CRAN上waffle软件包的最新版本是‘0.7.0‘

从GitHub安装:

library(devtools)
install_github("hrbrmstr/waffle")
packageVersion("waffle")
#[1] ‘0.9.1’

现在该功能按预期工作data.frame s

parts <- data.frame(
  names = LETTERS[1:4],
  vals = c(80, 30, 20, 10)
)

library(waffle)
waffle(parts, rows = 8)