ropensci / taxizedb

Tools for Working with Taxonomic SQL Databases
Other
30 stars 7 forks source link

Possible bug: using 'downstream' function with World Flora Online #54

Closed kwymangrothem closed 3 years ago

kwymangrothem commented 3 years ago

I'm getting an error trying to use the 'downstream' function with World Flora Online. The example from the reference manual is included below with the resulting error message; I have had the same result with all other taxa I have tried. Thanks for any help you can provide!

#example from reference manual:
> id <- name2taxid('Pinaceae', db = "wfo"); downstream(id, db = "wfo", downto = "species")
Error in strsplit(z, split = ",") : non-character argument
> id; class(id)
[1] "wfo-7000000470"
[1] "character"
Session Info ```r > sessionInfo() R version 3.6.3 (2020-02-29) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 10 x64 (build 17134) Matrix products: default locale: [1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 [3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C [5] LC_TIME=English_United States.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] taxizedb_0.2.2 dplyr_1.0.2 stringr_1.4.0 rgbif_3.4.2 ```
sckott commented 3 years ago

Thanks for the issue and for including your session info

I can't replicate the problem.

Run that eg again, but this time directly after downstream errors, run traceback() and share the output of that here

kwymangrothem commented 3 years ago

Thanks for the issue and for including your session info

I can't replicate the problem.

Run that eg again, but this time directly after downstream errors, run traceback() and share the output of that here

Thanks for the reply. Here is the output:

> id <- name2taxid('Pinaceae', db = "wfo")
> downstream(id, db = "wfo", downto = "species")
Error in strsplit(z, split = ",") : non-character argument
> traceback()
14: strsplit(z, split = ",")
13: unlist(strsplit(z, split = ","))
12: FUN(X[[i]], ...)
11: lapply(X = X, FUN = FUN, ...)
10: sapply(txdb_rr$ranks, function(z) {
        any(unlist(strsplit(z, split = ",")) == x)
    }, USE.NAMES = FALSE)
9: which(sapply(txdb_rr$ranks, function(z) {
       any(unlist(strsplit(z, split = ",")) == x)
   }, USE.NAMES = FALSE))
8: txdb_which_rank(downto)
7: FUN(X[[i]], ...)
6: lapply(x, FUN, src = src, ...)
5: stats::setNames(lapply(x, FUN, src = src, ...), x)
4: FUN(src, ...)
3: run_with_db(FUN = get(FUN), db = db, x = x, ...)
2: ap_dispatch(x = x, db = db, cmd = "downstream", verbose = verbose, 
       ...)
1: downstream(id, db = "wfo", downto = "species")
sckott commented 3 years ago

Please try again after reinstalling like remotes::install_github("ropensci/taxizedb") and it should work now