marcelopenner77
Hola !
Soy un principiante en R y estoy tratando de usarlo en el Editor de consultas para combinar varios archivos de texto, pero el resultado es una tabla vacía. Probé el código en R Studio y obtuve un resultado positivo. Revisé la clase y la salida es un marco de datos. No sé qué estoy haciendo mal.
Se agradece cualquier ayuda.
Usé el código de abajo con un bucle para leer todos los archivos en una carpeta y ponerlos en un marco de datos. Sé que hay muchas otras formas de hacer eso en R, pero elijo este ejemplo porque parece algo que haría en VBA.
Código usando Loop
biblioteca (readr)
biblioteca (stringr)
Ruta <- setwd ("C: / Users / mrX / Desktop / Temp")
archivos <- list.files (
ruta = Ruta
, patrón = «(. *) csv $»
, ignore.case = TRUE
)
master_data <- data.frame ()
contador = 0
para (archivo en archivos) {
file_data <-read.csv2 (archivo)
si (contador == 0) {
master_data <-file_data
} demás {
master_data <-rbind (master_data, file_data)
}
contador = contador + 1
}
datos maestros
Archivo 1
Name Value
a 1
b 2
c 3
Archivo 2
Name Value
d 4
e 5
f 6
Gracias
v-huizhn-msft
En respuesta a marcelopenner77
Hola @ marcelopenner77,
Ok, entendido, ¿podría marcar la respuesta útil / útil como respuesta? Así que más personas se beneficiarán de aquí. Realmente lo aprecio.
Atentamente,
Angelia
Phil_Seamark
Hola @ marcelopenner77
Puede combinar varios archivos sin usar R, pero simplemente eligiendo la opción Carpeta como fuente de datos.
marcelopenner77
En respuesta a Phil_Seamark
¡Gracias por la respuesta @Phil_Seamark!
Sí, el editor de consultas lo hace muy bien.
Mi modelo actual usa muchas transformaciones de GUI y algo de código M personalizado.
Se actualiza semanalmente con más de 60 k filas y la tabla consolidada está creciendo rápidamente. Pero no es un problema para Power Bi.
Mi problema es la cadena de evaluación, porque necesito fusionar esta tabla con otras. Cada vez que necesito cambiar o actualizar el modelo, me lleva horas.
Experimenté un poco con una especie de proceso de «puesta en escena». Consolidar todas las tablas por separado y solo luego cargarlas en el modelo. Hizo que el proceso de actualización fuera mucho más rápido.
Lo que estoy tratando de hacer ahora es consolidar los archivos usando R dentro del editor de consultas y verificar cómo afecta la cadena de evaluación y la velocidad. Es solo una experimentación.
Si no funciona, tendré que cargar los archivos en una base de datos y crear las tablas finales usando combinaciones, solo para reducir la carga del modelo.
Gracias
Phil_Seamark
En respuesta a marcelopenner77
Hola @ marcelopenner77
Veo su problema, pero no sé lo suficiente sobre la implementación de R en el Editor de consultas para sugerir cómo solucionarlo mediante R-Script. Personalmente, lo haría en una base de datos siempre que tenga fácil acceso a una. O use Azure DB (o lago de datos) para almacenar y preprocesar sus datos.
marcelopenner77
En respuesta a Phil_Seamark
@Phil_Seamark
Gracias por la sugerencia, pero espero encontrar una solución.
Si tengo que usar una base de datos, necesito solicitarlo y no es su principal prioridad.
También espero que microsoft considere este problema muy importante; de lo contrario, el concepto de Power Bi como una herramienta Bi de autoservicio completa solo será cierto para un pequeño conjunto de datos.
Power Query es la herramienta más maravillosa que he usado. Es poderoso de usar y mucho más simple que SSIS. Consolidar archivos es rápido y más fácil que hacer una inserción masiva en una base de datos. Pero fusionarse es decepcionante.
El uso de una base de datos para preprocesar datos hará que Power Query no sea relevante, ya que puedo hacer todo el trabajo a través de T-Sql.
Usé otro script R y funcionó bien, aun así todavía no tengo ni idea de por qué obtuve una tabla vacía con el primer script.
Cargaré el resto de tablas y veré cómo va el rendimiento.
v-huizhn-msft
En respuesta a marcelopenner77
Hola @ marcelopenner77,
Cuando carga los datos de un archivo, ¿devuelve los datos correctos como se describe en este blog? Cargue file1 y file2 por separado y verifique si funciona bien, luego consolide los dos archivos juntos.
Atentamente,
Angelia
marcelopenner77
En respuesta a v-huizhn-msft
Muchas gracias, @ v-huizhn-msft !
Ojalá hubiera encontrado este blog antes. Mucha buena información sobre R y Power Query.
Sí, hice «pequeños pasos» con la consolidación en R. Cargué un archivo y funcionó. Luego, agregué uno más y consolidé. Todo estuvo bien. Pero cuando intenté ejecutar un bucle, debido a que tengo muchos archivos para consolidar en mi modelo real, obtuve una tabla vacía.
Cambié mi código a lapply + do.call + r.bind y ahora está funcionando muy bien.
Mi primer problema con la cadena de evaluación está resuelto. El modelo se ejecuta mucho más rápido con archivos ~ preconsolidados ~.
Incluso podría intentar profundizar en R y resolver mi segundo problema de la cadena de evaluación: fusionar.
Estoy muy contento de tener R como alternativa, porque está integrado en el mismo entorno del modelo. Podría usar VBA para consolidar el csv, pero es mucho más sencillo hacer clic en actualizar en Power BI sin preocuparse por hacer un proceso de dos pasos.
Los mejores deseos,
M. Penner
v-huizhn-msft
En respuesta a marcelopenner77
Hola @ marcelopenner77,
Ok, entendido, ¿podría marcar la respuesta útil / útil como respuesta? Así que más personas se beneficiarán de aquí. Realmente lo aprecio.
Atentamente,
Angelia