Comments (11)
Using devtools
, it is possible to install the last CRAN archived version of this package:
require(devtools)
install_version("icd", version = "4.0.9", repos = "http://cran.us.r-project.org")
from icd.
Hi @jackwasey , anything that you need help with in order to get this package back up on CRAN? It's a great package, I would like to see this back up and happy to contribute in some way for this.
from icd.
I would also like to volunteer some time , if it's a diagnosed issue that requires some debugging. From what I have seen in the CRAN build log, a particular test is failing for linux architectures
from icd.
Would be happy for any help, and apologies to everyone for the hiatus. I do think the fixes are small to keep the package on CRAN.
from icd.
Hello,
I am a simple end user, and have used the above devtools() workaround to install the package. How can I update my installation to the CRAN version when it is available, and also how to find out when the package is available on CRAN? Thank you and apologies for the novice question.
from icd.
I've started looking into this a little and so far am working on getting unit tests to run successfully.
Got the following errors when running devtools::test()
── Failure (Line 15): all available ICD-10-CM data is reported and gettable ─────────────────────
`.get_fetcher_fun(r)()` threw an error.
Message: icd.cache not set and default location ‘/home/me/.cache/R/icd’ is not writable or doesn't exist. Use set_icd_data_dir() to get started. (The ‘icd.cache’ option is not set, and the default OS-dependent icd data directory does not exist yet. You may also use ‘set_icd_data_dir("/path/of/your/choice")’ .
Class: simpleError/error/condition
Running fetcher for: r = icd10cm2014_pc and pc = TRUE
Backtrace:
1. testthat::expect_error(...)
6. .get_fetcher_fun(r)()
9. icd::.parse_icd10cm_year(year = year, dx = dx) R/fetch_icd10cm.R:109:4
10. icd::.dl_icd10cm_year(year = year, dx = dx) R/parse-icd10.R:43:2
11. icd::.unzip_to_data_raw(...) R/fetch_icd10cm.R:89:2
12. icd::get_icd_data_dir() R/to_data_raw.R:29:2
── Error (Line 24): all available ICD-10-CM data is reported and gettable ─────────────────────
Error: icd10cm2014_pc not available in icd, even via as-yet-unloaded lazy data
Backtrace:
1. icd::.get_anywhere(r, fetch = FALSE)
2. icd::.absent_action_switch(paste(var_name, "not available in icd, even via as-yet-unloaded lazy data")) R/resource.R:607:2
Tests do not appear to correctly create the necessary and required directories, so I was able to fix the first one by creating the directory specified. After fixing the first issue, the second goes away, but is replaced by this:
Error (test-icd10cm-xml-chapters.R:3:1): (code run outside of `test_that()`)
Error: missing value where TRUE/FALSE needed
Backtrace:
1. icd:::skip_icd10cm_xml_avail() test-icd10cm-xml-chapters.R:3:0
2. icd:::skip_no_icd_data_raw(.dl_icd10cm_xml, "skipping test because XML file ICD-10-CM source not available") helper-icd-data.R:104:2
7. icd:::fun()
8. icd::.unzip_to_data_raw(...) /home/sethr/icd/R/parse-icd10cm-xml.R:4:2
9. icd::.confirm_download(msg = dl_msg) /home/sethr/icd/R/to_data_raw.R:54:4
I haven't figured out this one yet.
from icd.
I've been able to get the devtools::test
call to not fail by altering the following in the to_data_raw.R
code:
if (!file.exists(file_path)) {
.msg(
"Unable to find downloaded file at: ",
file_path, ". Attempting download..."
)
if (!.confirm_download(msg = dl_msg)) {
return()
}
ok <- .unzip_single(
url = url,
file_name = file_name,
save_path = file_path,
...
)
stopifnot(ok)
}
I essentially override the .confirm_download(msg = dl_msg)
call by changing (msg = dl_msg)
to (msg = TRUE)
, as follows (.confirm_download()
is located in resource.R
:
if (!file.exists(file_path)) {
.msg(
"Unable to find downloaded file at: ",
file_path, ". Attempting download..."
)
if (!.confirm_download(msg = TRUE)) {
return()
}
ok <- .unzip_single(
url = url,
file_name = file_name,
save_path = file_path,
...
)
stopifnot(ok)
}
Which correctly employs the .confirm_download()
call and actually brings up a pop-up confirmation window, as it should:
.confirm_download <- function(msg = NULL) {
if (!.offline()) {
if (!.exists_icd_data_dir()) {
set_icd_data_dir()
}
return(TRUE)
}
ok <- FALSE
if (.interact()) {
message(
"icd needs to download and/or parse data.",
"It will be saved in an OS-specific data directory, ",
"or according to the R option: ", sQuote("icd.cache")
)
if (.verbose() && !is.null(msg)) message(msg)
ok <- isTRUE(
askYesNo(
"May I download and cache a few MB per ICD edition as needed?"
)
)
}
.set_opt("offline" = !ok)
if (!ok) .absent_action_switch("Unable to get permission to download data.")
ok
}
However, I haven't been able to quite figure out the exact reason why this change works. Given that the error thrown when running devtools::test
is missing value where TRUE/FALSE needed
, I figured that giving it a TRUE
value would help. But as for why confirm_download()
isn't returning TRUE/FALSE
, I can't say just yet.
UPDATE
Having re-run the devtools::test
call, it passes successfully; I'm assuming this is because the necessary data has been cached, which results in .confirm_download
no longer being called? Not too sure...
Nonetheless, it appears that the above is not the reason precluding icd
from being back up on CRAN; it looks like the refactor
tests are failing for Linux, as mentioned by adalisan above.
Running the call that fails (in test-refactor.R
) on Windows passes the test:
test_that("new factor has empty levels when necessary", {
expect_equal(
refactor(factor("a"), levels = NA, na.rm = FALSE, exclude_na = TRUE),
factor(NA)
)
})
Changing this line to refactor(f, levels = NA, na.rm = FALSE, exclude_na = FALSE)
and factor(NA)
to factor(NA, exclude = NULL)
as it appears in the CRAN package check results appears to replicate the error:
> test_that("new factor has empty levels when necessary", {
+ expect_equal(
+ refactor(factor("a"), levels = NA, na.rm = FALSE, exclude_na = FALSE),
+ factor(NA, exclude = NULL)
+ )
+ })
-- Failure (Line 2): new factor has empty levels when necessary ---------------------
refactor(factor("a"), levels = NA, na.rm = FALSE, exclude_na = FALSE) not equal to factor(NA, exclude = NULL).
1, NA mismatch
Looking at the history of test.refactor.R
here (diff 222, line 123 in right column), it looks like exclude = NULL
is included. However, the same is not included in the file located in the repo here (line 119).
I'm not sure how helpful this is in fixing this issue.
from icd.
Using
devtools
, it is possible to install the last CRAN archived version of this package:require(devtools) install_version("icd", version = "4.0.9", repos = "http://cran.us.r-project.org")
These lines do not work for me. Do you have any updates on how to get the ICD package downloaded?
from icd.
from icd.
Try
devtools::install_github("jackwasey/icd")
I can confirm this works on R version 4.3.1 (MacOS 12).
from icd.
any progress or work-group on fixing this tests to get icd back to cran?
from icd.
Related Issues (20)
- dependency on curl executable should be more obvious HOT 1
- short_code argument to expand_range doesn't work for ICD10 HOT 1
- Extending to ICD-O?
- expand_range errors out on ICD-10 decimal codes
- travis build failing due to qpdf HOT 2
- Add `[.icd9cm_pc` and `[.icd10cm_pc` methods
- cannot install in R 3.6.3 or 3.6.1 HOT 1
- package pulled from CRAN HOT 1
- package no longer available on cran HOT 2
- Confusion over undefined ICD codes HOT 2
- Workaround from icd 10 - global burden of disease
- Charlson score accounting twice for the same diagnosis
- Fails to download who16? HOT 1
- update ICD-10 AHRQ comorbidities
- unable to keep track of which ICD codes are explainable and which are unexplained
- E-Valued ICD10 Codes Return Incorrect Desc or Character Length 0 within `explain_code()`
- How to download the package to a local file HOT 1
- expand_range doesn't work for certain chapters HOT 1
- Not able to install ICD package HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from icd.