ropensci / taxadb

:package: Taxonomic Database
https://docs.ropensci.org/taxadb
Other
43 stars 13 forks source link

get_names Error: no such function: top_n_rank #80

Closed Geiziane closed 3 years ago

Geiziane commented 3 years ago

Hi, I'm running the folowing comand:

found_name <-taxadb::filter_name("Leporinus reinhardti", provider = 'fb') taxadb::get_names(found_name$acceptedNameUsageID, 'fb')

But I get the error: no such function: top_n_rank

sessionInfo() R version 4.0.0 (2020-04-24) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Ubuntu 18.04.4 LTS

Matrix products: default BLAS/LAPACK: /usr/lib/x86_64-linux-gnu/libopenblasp-r0.2.20.so

locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
[3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
[5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=C
[7] LC_PAPER=en_US.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

attached base packages: [1] stats graphics grDevices utils datasets [6] methods base

other attached packages: [1] dbplyr_1.4.4 Hmisc_4.4-0
[3] Formula_1.2-3 survival_3.1-12
[5] lattice_0.20-41 flora_0.3.4
[7] data.table_1.12.8 rgnparser_0.1.0.91 [9] here_0.1 vroom_1.2.1
[11] forcats_0.5.0 stringr_1.4.0
[13] dplyr_1.0.0 purrr_0.3.4
[15] readr_1.3.1 tidyr_1.1.0
[17] tibble_3.0.1 ggplot2_3.3.1
[19] tidyverse_1.3.0 taxadb_0.1.0

loaded via a namespace (and not attached): [1] colorspace_1.4-1 ellipsis_0.3.1
[3] class_7.3-16 rprojroot_1.3-2
[5] htmlTable_1.13.3 base64enc_0.1-3
[7] fs_1.4.1 rstudioapi_0.11
[9] remotes_2.1.1 bit64_0.9-7
[11] fansi_0.4.1 lubridate_1.7.8
[13] xml2_1.3.2 codetools_0.2-16
[15] splines_4.0.0 knitr_1.28
[17] pkgload_1.1.0 jsonlite_1.6.1
[19] broom_0.5.6 cluster_2.1.0
[21] png_0.1-7 compiler_4.0.0
[23] httr_1.4.1 backports_1.1.7
[25] assertthat_0.2.1 Matrix_1.2-18
[27] cli_2.0.2 acepack_1.4.1
[29] htmltools_0.4.0 prettyunits_1.1.1
[31] tools_4.0.0 gtable_0.3.0
[33] glue_1.4.1 rappdirs_0.3.1
[35] Rcpp_1.0.4.6 cellranger_1.1.0
[37] raster_3.1-5 vctrs_0.3.1
[39] countrycode_1.2.0 nlme_3.1-147
[41] xfun_0.14 ps_1.3.3
[43] testthat_2.3.2 rvest_0.3.5
[45] lifecycle_0.2.0 sys_3.3
[47] devtools_2.3.0 stringdist_0.9.5.5 [49] scales_1.1.1 hms_0.5.3
[51] parallel_4.0.0 RColorBrewer_1.1-2 [53] curl_4.3 memoise_1.1.0
[55] gridExtra_2.3 rpart_4.1-15
[57] latticeExtra_0.6-29 stringi_1.4.6
[59] RSQLite_2.2.0 desc_1.2.0
[61] e1071_1.7-3 checkmate_2.0.0
[63] pkgbuild_1.0.8 rlang_0.4.6
[65] pkgconfig_2.0.3 sf_0.9-3
[67] htmlwidgets_1.5.1 bit_1.1-15.2
[69] tidyselect_1.1.0 processx_3.4.2
[71] magrittr_1.5 R6_2.4.1
[73] generics_0.0.2 DBI_1.1.0
[75] arkdb_0.0.5 pillar_1.4.4
[77] haven_2.3.1 foreign_0.8-78
[79] withr_2.2.0 units_0.6-6
[81] sp_1.4-2 nnet_7.3-13
[83] modelr_0.1.8 crayon_1.3.4
[85] KernSmooth_2.23-16 utf8_1.1.4
[87] usethis_1.6.1 jpeg_0.1-8.1
[89] progress_1.2.2 rnaturalearth_0.1.0 [91] grid_4.0.0 readxl_1.3.1
[93] blob_1.2.1 callr_3.4.3
[95] reprex_0.3.0 digest_0.6.25
[97] classInt_0.4-3 munsell_0.5.0
[99] sessioninfo_1.1.1

Thank you.

cboettig commented 3 years ago

Thanks for the report. Yes, it looks like the duckdb backend (that recently replaced MonetDBLite as the default backend when the latter was removed from CRAN) still doesn't support some dplyr verbs, including top_n.

Meanwhile, I think it's easier if you stick with the filter_* functions instead, e.g. like so

library(dplyr)
found_name <-taxadb::filter_name("Leporinus reinhardti", provider = 'fb')
matches <- taxadb::filter_id(found_name$acceptedNameUsageID, 'fb')
matches %>% filter(taxonomicStatus == "accepted") %>% pull(scientificName)

Taxonomic naming provider data isn't always as clean as we'd like it to be, so working with the table-based verbs can help spot potential issues or inconsistencies.

Geiziane commented 3 years ago

Thank you for this work around.