mirror of https://github.com/msberends/AMR
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
3.0 KiB
61 lines
3.0 KiB
# ==================================================================== # |
|
# TITLE # |
|
# Antimicrobial Resistance (AMR) Data Analysis for R # |
|
# # |
|
# SOURCE # |
|
# https://github.com/msberends/AMR # |
|
# # |
|
# LICENCE # |
|
# (c) 2018-2022 Berends MS, Luz CF et al. # |
|
# Developed at the University of Groningen, the Netherlands, in # |
|
# collaboration with non-profit organisations Certe Medical # |
|
# Diagnostics & Advice, and University Medical Center Groningen. # |
|
# # |
|
# This R package is free software; you can freely use and distribute # |
|
# it for both personal and commercial purposes under the terms of the # |
|
# GNU General Public License version 2.0 (GNU GPL-2), as published by # |
|
# the Free Software Foundation. # |
|
# We created this package for both routine data analysis and academic # |
|
# research and it was publicly released in the hope that it will be # |
|
# useful, but it comes WITHOUT ANY WARRANTY OR LIABILITY. # |
|
# # |
|
# Visit our website for the full manual and a complete tutorial about # |
|
# how to conduct AMR data analysis: https://msberends.github.io/AMR/ # |
|
# ==================================================================== # |
|
|
|
# last updated: 20 January 2020 - Loinc_2.67 |
|
|
|
# Steps to reproduce: |
|
# 1. Create a fake account at https://loinc.org (sad you have to create one...) |
|
# 2. Download the CSV from https://loinc.org/download/loinc-table-file-csv/ (Loinc_2.67_Text_2.67.zip) |
|
# 3. Read Loinc.csv that's in this zip file |
|
loinc_df <- read.csv("data-raw/Loinc.csv", |
|
row.names = NULL, |
|
stringsAsFactors = FALSE) |
|
|
|
# 4. Clean and add |
|
library(dplyr) |
|
library(cleaner) |
|
library(AMR) |
|
loinc_df %>% freq(CLASS) # to find the drugs |
|
loinc_df <- loinc_df %>% filter(CLASS == "DRUG/TOX") |
|
ab_names <- antibiotics %>% pull(name) %>% paste0(collapse = "|") %>% paste0("(", ., ")") |
|
|
|
antibiotics$loinc <- as.list(rep(NA_character_, nrow(antibiotics))) |
|
for (i in seq_len(nrow(antibiotics))) { |
|
loinc_ab <- loinc_df %>% |
|
filter(COMPONENT %like% paste0("^", antibiotics$name[i])) %>% |
|
pull(LOINC_NUM) |
|
if (length(loinc_ab) > 0) { |
|
antibiotics$loinc[i] <- list(loinc_ab) |
|
} |
|
} |
|
# sort and fix for empty values |
|
for (i in 1:nrow(antibiotics)) { |
|
loinc <- as.character(sort(unique(tolower(antibiotics[i, "loinc"][[1]])))) |
|
antibiotics[i, "loinc"][[1]] <- ifelse(length(syn[!syn == ""]) == 0, list(""), list(loinc)) |
|
} |
|
|
|
dim(antibiotics) # for R/data.R |
|
usethis::use_data(antibiotics, overwrite = TRUE) |
|
rm(antibiotics)
|
|
|