Comando RCOMMAND

Pasa una tabla de Analytics a un script R externo como un marco de datos y crea una nueva tabla en el proyecto de Analytics utilizando la salida del script R externo.

Sintaxis

RCOMMAND FIELDS campo <...n> RSCRIPT ruta_al_script TO nombre_tabla <IF prueba> <WHILE prueba> <FIRST rango |NEXT rango> <KEEPTITLE> <SEPARATOR carácter> <QUALIFIER carácter> <OPEN>

Parámetros

Nombre Descripción
FIELDS nombre_campo <...n>

Los campos de la tabla de origen de Analytics o las expresiones que se deben incluir en el marco de datos que se envía al script R.

Según la edición de Analytics que esté usando, puede detectar errores al enviar datos que contienen algunos caracteres especiales a R:

  • no Unicode "\"
  • Unicode "ÿ" o "Ŝ"
  • Ambos extrae caracteres como bloques, cuadrados negros y barras verticales interrumpidas

Nota

Tampoco se admiten datos de idiomas mezclados; por ejemplo, una tabla con caracteres tanto en japonés como en chino.

RSCRIPT ruta_al_script

La ruta completa o relativa al script R en el sistema de archivos. Encierre ruta_al_script entre comillas.

TO nombre_tabla

El lugar al que se deben enviar los resultados del comando:

  • nombre_tabla guarda los resultados en una tabla de Analytics

    Especifique el nombre_tabla como una cadena entre comillas con la extensión de archivo .FIL. Por ejemplo: TO "Salida.FIL"

    Por valor predeterminado, el archivo de datos de la tabla (.FIL) se guarda en la carpeta que contiene el proyecto de Analytics.

    Utilice una ruta de archivo absoluta o relativa para guardar el archivo de datos en una carpeta existente o una diferente:

    • TO "C:\Salida.FIL"
    • TO "Resultados\Salida.FIL"

    Nota

    Los nombres de las tablas tienen un límite de 64 caracteres alfanuméricos, sin incluir la extensión .FIL. El nombre puede incluir un guión bajo ( _ ), pero no puede incluir ningún otro carácter especial ni espacios. El nombre no puede comenzar con un número.

La tabla de salida se crea a partir del marco o la matriz de datos que devuelve el script R.

IF prueba

opcional

Una condición que se debe cumplir para procesar el registro actual. El marco de datos que se pasa al script R contiene únicamente los registros que cumplen con esta condición.
WHILE prueba

opcional

Una expresión condicional que debe ser verdadera para procesar cada registro. El comando se ejecuta hasta que la condición se evalúa como falsa o hasta que se llega al final de la tabla.

Nota

Si usa WHILE junto con FIRST o NEXT, el procesamiento de registros se detiene al llegar a un límite.

FIRST rango | NEXT rango

opcional

La cantidad de registros que se procesarán:

  • FIRST comienza a procesar desde el primer registro hasta que se llega al número de registros especificado
  • NEXT comienza a procesar desde el registro seleccionado actualmente hasta que se llega al número de registros especificado

Utilice intervalo para especificar la cantidad de registros que se deben procesar.

Si omite FIRST y NEXT, se procesan todos los registros de forma predeterminada.

¡Precaución!

Existe un problema conocido en la versión actual con NEXT al ejecutar RCOMMAND. Evite usar esta opción ya que la referencia al registro puede regresar al primer registro sin importar qué registro se seleccione.

KEEPTITLE

opcional

Tratar a la primera fila de datos como nombres de campos en lugar de datos. Si se omite, se utilizan nombres de campo genéricos.

Esta opción es necesaria si desea recuperar los datos utilizando nombres de columnas en el script R.

SEPARATOR carácter

opcional

El carácter que se debe utilizar como separador entre campos. Debe especificar el carácter como una cadena entre comillas.

El carácter predeterminado es la coma.

Nota

Evite usar los caracteres que aparecen en los campos de entrada. Si el carácter SEPARATOR aparece en los datos de entrada, es posible que los resultados se vean afectados.

QUALIFIER carácter

opcional

El carácter que se debe utilizar como calificador de texto para encerrar e identificar los valores de los campos. Debe especificar el carácter como una cadena entre comillas.

El carácter predeterminado es la comilla doble.

Nota

Evite usar los caracteres que aparecen en los campos de entrada. Si el carácter QUALIFIER aparece en los datos de entrada, es posible que los resultados se vean afectados.

OPEN

opcional

Abre la tabla creada por el comando después de la ejecución del comando. Solo es válido si el comando crea una tabla de salida.

Ejemplos

Puesta en funcionamiento de R (Hello world)

Usted crea un script "hello world" para probar la conexión entre Analytics y R:

Comando de Analytics

RCOMMAND FIELDS "Hello", ", world!" TO "r_resultado" RSCRIPT "C:\scripts\r_scripts\analysis.r"

Script R (analysis.r)

srcTable<-acl.readData()

# crear tabla para enviar nuevamente a ACL
output<-data.frame(
  c(srcTable[1,1]),
  c(srcTable[1,2])
)

# agregar columna y enviar la tabla nuevamente a ACL
colnames(output) <- c("Greeting","Subject")
acl.output<-output

Acceso a los datos de los campos con coordenadas de fila y columna

Usted envía varios campos de factura a un script R para analizarlos fuera de Analytics:

Comando de Analytics

RCOMMAND FIELDS Código_departamento Importe_factura Fecha_factura Número_factura Número_proveedor TO "r_resultado" RSCRIPT "C:\scripts\r_scripts\analysis.r"

Script R (analysis.r)

# Recupera el número de factura de la segunda fila del marco de datos en el script R
srcTable<-acl.readData()
srcTable[2,4]

Acceso a los datos del campo utilizando los nombres de las columnas

Usted envía varios campos de factura a un script R para analizarlos fuera de Analytics. Utiliza la opción KEEPTITLE para que se pueda hacer referencia a las columnas por nombre en R:

Comando de Analytics

RCOMMAND FIELDS Código_departamento Importe_factura Número_factura TO "r_resultado" RSCRIPT "C:\scripts\r_scripts\analysis.r" KEEPTITLE

Script R (analysis.r)

# Recupera el número de factura de la segunda fila del marco de datos en el script R
srcTable<-acl.readData()
srcTable["2","Invoice_Number"]

Envío de registros de facturas que superan el valor de 1000,00 al script R

Usted envía varios campos de factura a un script R para analizarlos fuera de Analytics. Utiliza IF para limitar los registros que se envían a R. Solo se envían los registros con un importe de factura superior a 1000,00:

Comando de Analytics

RCOMMAND FIELDS Código_departamento Importe_factura Número_factura TO "r_resultado" IF Importe_factura > 1000,00 RSCRIPT "C:\scripts\r_scripts\analysis.r" KEEPTITLE

Script R (analysis.r)

# Recupera el número de factura de la segunda fila del marco de datos en el script R
srcTable<-acl.readData()
srcTable["2","Invoice_Number"]

Envío de registros de facturas y devolución de los importes de facturas multiplicados

Usted envía varios campos de factura a un script R para analizarlos fuera de Analytics. El script R realiza una única acción con cada celda de la columna nombrada:

Comando de Analytics

RCOMMAND FIELDS Código_departamento Importe_factura Número_factura TO "r_resultado" RSCRIPT "C:\scripts\r_scripts\analysis.r" KEEPTITLE

Script R (analysis.r)

# Devuelve parte de la tabla de ACL con el valor duplicado
srcTable<-acl.readData()
acl.output<-srcTable["Invoice_Amount"] * 2

Observaciones

Nota

Si desea obtener más información sobre la forma en la que funciona este comando, consulte Guía de ayuda.

Referencia a los datos de Analytics en el script R

La tabla de Analytics se pasa al script como un marco de datos R. Los marcos de datos son objetos de datos tabulares que pueden contener columnas de diferentes modos o tipos de datos.

Para trabajar con el marco de datos creado por Analytics en un script R, invoque la función acl.readData() y almacene el marco de datos que obtenga en una variable:

# almacena la tabla de Analytics en un marco de datos denominado myTable al que se puede hacer referencia a lo largo del script
myTable<-acl.readData()

Para recuperar datos de una celda del marco de datos, puede utilizar uno de los siguientes enfoques:

  • Uso de coordenadas de fila y columna:

    # Devuelve el valor de la primera fila y la segunda columna del marco de datos
    myTable[1,2]

    Nota

    Las coordenadas se basan en el orden de los campos especificados en el comando, no en la vista o el formato de la tabla actualmente abierta.

  • Uso de nombres de fila y columna:

    # Devuelve el valor de la primera fila y la columna "myColumnTitle" del marco de datos
    myTable["1","myColumnTitle"]

    Debe especificar la opción KEEPTITLE del comando para usar los nombres de las columnas.

    Las filas se denominan "1", "2", "3" y se incrementan de conformidad. También puede utilizar una combinación de nombres y coordenadas.

Paso de datos de regreso a Analytics

Para devolver una matriz o un marco de datos a Analytics y crear una tabla nueva, utilice la siguiente sintaxis:

# Pasa el marco de datos myNewTable nuevamente a Analytics para crear una nueva tabla 
acl.output<-myNewTable

Nota

Debe regresar una matriz o un marco de datos a Analytics cuando finaliza el script R. Asegúrese de que las columnas de la matriz o el marco de datos contengan únicamente valores atómicos y no listas, matrices, estructuras u objetos no atómicos. Si no es posible traducir los valores a tipos de datos de Analytics, el comando arroja un error.

Asignaciones de tipos de datos

Los tipos de datos de Analytics se traducen en tipos de datos R utilizando un proceso de traducción entre el proyecto de ACL y el script R:

Tipo de datos de Analytics Tipo(s) de datos R
Lógico Lógico
Numérico Numérico
Carácter Carácter
Fechahora Fecha, POSIXct, POSIXlt

Rendimiento y límites del tamaño de archivo

El tiempo que lleva ejecutar su script R y procesar los datos que se devuelven aumenta para los datos de entrada que superan 1 GB. R no admite archivos de entrada de 2 GB o de mayor tamaño.

La cantidad de registros que se envían a R también afecta el rendimiento. Si se procesan dos tablas con el mismo tamaño de archivo pero una cantidad de registros diferentes, el procesamiento de la tabla con menos registros se realiza más rápido.

Manejo de datos de caracteres de varios bytes

Si está enviando datos a R en un conjunto de caracteres de varios bytes, como en chino, debe establecer la configuración regional apropiadamente en su script R. Para enviar con éxito una tabla de datos de varios bytes a R, la primera línea del script R debe contener la siguiente función:

# Ejemplo que establece la configuración regional al chino
Sys.setlocale("LC_ALL","Chinese")

Si desea obtener más información sobre Sys.setlocale( ), consulte la documentación R.

Archivo de log de R

Analytics registra los mensajes del lenguaje R en un archivo aclrlang.log en la carpeta del proyecto. Utilice este archivo de log para depurar los errores de R.

Consejo

El archivo de log está disponible en la carpeta Resultados de los trabajos de estudio analítico de Analytics Exchange.

Ejecución de scripts de R en el Servidor de AX

Si está escribiendo una aplicación de análisis para ejecutarla en el Servidor de AX y desea trabajar con scripts de R externos:

  1. Cargue el archivo como un archivo relacionado con la aplicación de análisis.
  2. Utilice la etiqueta de estudio analítico FILE para identificar el o los archivos.
  3. Haga referencia a los archivos utilizando la ruta relativa ./nombre_del_archivo.r.

Nota

El uso de un archivo relacionado garantiza que la cuenta del servidor de la aplicación TomEE cuente con permisos suficientes para acceder al archivo al ejecutar R con Analytics Exchange.

Guía de creación de scripts de ACL 14.1