Funciones prototipo para descarga de modelos en R

parents
^README\.Rmd$
^LICENSE\.md$
^.*\.Rproj$
^\.Rproj\.user$
.Rproj.user
.Rhistory
.RData
.Ruserdata
Package: sparkrspecies
Type: Package
Title: What the Package Does (Title Case)
Version: 0.1.0
Author: Who wrote it
Maintainer: The package maintainer <yourself@somewhere.net>
Description: More about what it does (maybe more than one line)
Use four spaces when indenting paragraphs within the Description.
License: GPL-3
Encoding: UTF-8
LazyData: true
Imports:
SparkR,
doParallel,
parallel,
iterators,
foreach
This diff is collapsed. Click to expand it.
exportPattern("^[[:alpha:]]+")
do_fn <- function(name)
{
clases <- c("Adenophorea", "Amphibia", "Anthozoa", "Arachnida", "Archiacanthocephala", "Ascidiacea",
"Asteroidea", "Aves", "Bivalvia", "Branchiopoda", "Calcarea", "Cephalopoda", "Cestoda",
"Chilopoda", "Chondrichthyes", "Chromadorea", "Clitellata", "Collembola", "Crinoidea",
"Cubozoa", "Demospongiae", "Diplopoda", "Diplura", "Echinoidea", "Eoacanthocephala",
"Eurotatoria", "Eutardigrada", "Gastropoda", "Gymnolaemata", "Hexactinellida",
"Holothuroidea", "Hydrozoa", "Incertae sedis", "Insecta", "Leptocardii", "Lingulata",
"Malacostraca", "Mammalia", "Maxillopoda", "Monogenoidea", "Myxini", "Ophiuroidea",
"Osteichthyes", "Ostracoda", "Palaeacanthocephala", "Petromyzontida", "Phascolosomatidea",
"Polychaeta", "Polyplacophora", "Pycnogonida", "Remipedia", "Reptilia", "Rhabditophora",
"Rhynchonellata", "Sagittoidea", "Scaphopoda", "Scyphozoa", "Secernentea", "Sipunculidea",
"Tentaculata", "Thaliacea", "Trematoda", "Udeonychophora", "Xiphosura", "Anthocerotopsida",
"Bryopsida", "Equisetopsida", "Jungermanniopsida", "Marchantiopsida", "Agaricomycetes",
"Arthoniomycetes", "Atractiellomycetes", "Chytridiomycetes", "Dacrymycetes", "Dothideomycetes",
"Eurotiomycetes", "Exobasidiomycetes", "Glomeromycetes", "Lecanoromycetes", "Leotiomycetes",
"Lichinomycetes", "Microbotryomycetes", "Orbiliomycetes", "Pezizomycetes", "Pucciniomycetes",
"Saccharomycetes", "Sordariomycetes", "Taphrinomycetes", "Tremellomycetes", "Ustilaginomycetes",
"Zygomycetes", "Actinobacteria", "Alphaproteobacteria", "Bacilli", "Betaproteobacteria","Cyanophyceae",
"Deltaproteobacteria", "Flavobacteria", "Gammaproteobacteria", "Sphingobacteria", "Bacillariophyceae",
"Bangiophyceae", "Charophyceae", "Chlorophyceae", "Chrysophyceae", "Compsopogonophyceae", "Conjugatophyceae",
"Coscinodiscophyceae", "Cryptophyceae", "Dictyochophyceae", "Dinophyceae", "Euglenophyceae", "Florideophyceae",
"Fragilariophyceae", "Globothalamea", "Granuloreticulosea", "Hypotrichea", "Klebsormidiophyceae", "Myxomycetes",
"Noctiluciphyceae", "Oligohymenophorea", "Oligotrichea", "Phaeophyceae", "Picophagophyceae", "Polycystina",
"Prasinophyceae", "Prymnesiophyceae", "Raphidophyceae", "Stylonematophyceae", "Synurophyceae", "Trebouxiophyceae",
"Ulvophyceae", "Xanthophyceae")
library(doParallel)
nc <- parallel::detectCores() -1
cl <- parallel::makeCluster(nc)
doParallel::registerDoParallel(cl)
out <- foreach::foreach(i = iterators::iter(name, by = "row"),.export=c('georel_lst', 'clases'), .packages = c('doParallel', 'iterators', 'parallel') , .combine = rbind) %do%
{
aux_out <- httr::content(
httr::POST(paste("http://species.conabio.gob.mx/api/niche/especie",
"getEntList", sep = "/"),
body = list(searchStr = i,
nivel = "especievalidabusqueda",
source = "1"),
encode = "json"))$data
aux_data <- do.call(rbind.data.frame, aux_out)
aux_data<- subset(aux_data, especievalidabusqueda == i)
id_target <- aux_data$spid
results <- foreach::foreach(j = iterators::iter(clases), .export = c('georel_lst', 'clases', 'i', 'id_target'), .combine = rbind) %dopar%
{
tryCatch(output <- georel_lst(target = i, value = j, id = id_target),
error = function(e)
{
output <<- data.frame(spid = NA, Specie = NA, nij = NA, nj = NA,
ni = NA, n = NA, kingdom = NA, phylum = NA,
class = NA, order = NA, family = NA,
Epsilon = NA, Score = NA, stringsAsFactors = FALSE)
},
finally = (output <- data.frame(Target = i, output, stringsAsFactors = FALSE)))
return(output)
}
return(results)
}
return(out)
parallel::stopCluster(cl)
}
# Hello, world!
#
# This is an example function named 'hello'
# which prints 'Hello, world!'.
#
# You can learn more about package authoring with RStudio at:
#
# http://r-pkgs.had.co.nz/
#
# Some useful keyboard shortcuts for package authoring:
#
# Build and Reload Package: 'Ctrl + Shift + B'
# Check Package: 'Ctrl + Shift + E'
# Test Package: 'Ctrl + Shift + T'
hello <- function() {
print("Hello, world!")
}
LR_sparkR <- function(target)
{
if(!is.data.frame(target) )
{
stop("Target debe ser una data frame.")
}
sparkR.session(master = "local[*]", sparkConfig = list(spark.driver.memory = "2g"))
target_tbl <- as.DataFrame(target)
output <- SparkR::dapplyCollect(target_tbl, do_fn)
return(output)
sparkR.stop()
}
#' @keywords internal
"_PACKAGE"
---
output: github_document
---
```{r setup, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```
# sparkrspecies
Funciones para la descarga de Modelos desde la API SPECIES
## Paquetes necesarios
La descarga de los modelos se realiza con el paquete SparkR, por lo que será necesario realizar su instalación.
Para ello es necesario realizar la descarga de Spark, que puede realizarce [aquí](https://spark.apache.org/downloads.html)
NOTA: Las funciones fueron desarrolladas y probadas con la versión 2.4.2, por ello es recomendable se trabaje con ella.
-Descomprimir el archivo y moverlo a la ruta que se desee.
-Creamos la variable SPARK_HOME en el archivo .Reenviron, para abrirlo se utiliza
```{r file, eval = FALSE}
file.edit(file.path("~", ".Renviron"))
```
-En el agregamos la variable
```{r, eval= FALSE}
SPARK_HOME = <Directorio donde se encuentra la carpeta de SPARK>
```
-Reiniciamos R y verificamos que la direccion en SPARK_HOME sea la correcta con
``` {r, eval = FALSE}
Sys.getenv("SPARK_HOME")
```
-Añadimos SparkR al libPath y se carga la libreria
``` {r, eval = FALSE}
.libPaths(c(file.path(Sys.getenv("SPARK_HOME"),"R/lib/"),.libPaths()))
library(SparkR)
```
Estos dos últimos comandos se utilizaran cada que se desee cargar el paquete SparkR, por lo que se puede crear una función personal, por ejemplo:
``` {r, eval = FALSE}
init() <- function()
{
.libPaths(c(file.path(Sys.getenv("SPARK_HOME"),"R/lib/"),.libPaths()))
library(SparkR)
}
```
Entonces para volver a usar la libreria unicamente se carga
``` {r, eval = FALSE}
init()
```
## Uso de las funciones
El uso de las funciones depende de la descarga de los nombres de las especies que se encuentran en la base de datos de la API SPECIES, para ello se utiliza la funcion all_names
```{r all_names, eval=FALSE}
target <- all_names()
```
Con el data frame target que se obtuvo anteriormente usamos la función LR_sparkR
```{r target, eval=FALSE}
model <- LR_sparkR(target[1:2, 1 , drop = FALSE])
```
Se pueden enviar las especies especificas a la LR_sparkR, siempre y cuando sean del tipo data.frame
sparkrspecies
=============
Funciones para la descarga de Modelos desde la API SPECIES
Paquetes necesarios
-------------------
La descarga de los modelos se realiza con el paquete SparkR, por lo que será necesario realizar su instalación. Para ello es necesario realizar la descarga de Spark, que puede realizarce [aquí](https://spark.apache.org/downloads.html)
NOTA: Las funciones fueron desarrolladas y probadas con la versión 2.4.2, por ello es recomendable se trabaje con ella.
-Descomprimir el archivo y moverlo a la ruta que se desee.
-Creamos la variable SPARK\_HOME en el archivo .Reenviron, para abrirlo se utiliza
``` r
file.edit(file.path("~", ".Renviron"))
```
-En el agregamos la variable
``` r
SPARK_HOME = <Directorio donde se encuentra la carpeta de SPARK>
```
-Reiniciamos R y verificamos que la direccion en SPARK\_HOME sea la correcta con
``` r
Sys.getenv("SPARK_HOME")
```
-Añadimos SparkR al libPath y se carga la libreria
``` r
.libPaths(c(file.path(Sys.getenv("SPARK_HOME"),"R/lib/"),.libPaths()))
library(SparkR)
```
Estos dos últimos comandos se utilizaran cada que se desee cargar el paquete SparkR, por lo que se puede crear una función personal, por ejemplo:
``` r
init() <- function()
{
.libPaths(c(file.path(Sys.getenv("SPARK_HOME"),"R/lib/"),.libPaths()))
library(SparkR)
}
```
Entonces para volver a usar la libreria unicamente se carga
``` r
init()
```
Uso de las funciones
--------------------
El uso de las funciones depende de la descarga de los nombres de las especies que se encuentran en la base de datos de la API SPECIES, para ello se utiliza la funcion all\_names
``` r
target <- all_names()
```
Con el data frame target que se obtuvo anteriormente usamos la función LR\_sparkR
``` r
model <- LR_sparkR(target[1:2, 1 , drop = FALSE])
```
Se pueden enviar las especies especificas a la LR\_sparkR, siempre y cuando sean del tipo data.frame
\name{hello}
\alias{hello}
\title{Hello, World!}
\usage{
hello()
}
\description{
Prints 'Hello, world!'.
}
\examples{
hello()
}
Version: 1.0
RestoreWorkspace: Default
SaveWorkspace: Default
AlwaysSaveHistory: Default
EnableCodeIndexing: Yes
UseSpacesForTab: Yes
NumSpacesForTab: 2
Encoding: UTF-8
RnwWeave: Sweave
LaTeX: pdfLaTeX
AutoAppendNewline: Yes
StripTrailingWhitespace: Yes
BuildType: Package
PackageUseDevtools: Yes
PackageInstallArgs: --no-multiarch --with-keep.source
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment