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:
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:
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:
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:
- Cargue el archivo como un archivo relacionado con la aplicación de análisis.
- Utilice la etiqueta de estudio analítico FILE para identificar el o los archivos.
- 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.