La función na.locf de zoo no llena los campos con el script R en Power Query Editor

Un usuario Pregunto ✅

URL

Estoy tratando de usar la función na.locf() del paquete zoo para completar los valores faltantes en las filas adyacentes. Funciona cuando lo ejecuto en RStudio, pero no funciona en PowerBI. Aquí hay una versión abreviada del código R:

library(dplyr)
library(zoo)
library(lubridate)

fillGuids <- clean %>%
    arrange(User, Serial, desc(ClientTime_clean), MetaGuid, desc(Action)) %>%
    group_by(User,Serial,date(ClientTime_clean)) %>%
    mutate(MetaGuid_filled = zoo::na.locf(MetaGuid, na.rm=FALSE)) %>% 
    ungroup() %>% #fill all missing MetaGuids that come after first log by User/Serial/date

Este es el resultado deseado para el campo MetaGuid_filled, derivado del campo MetaGuid. Sin embargo, el resultado de PowerBI es justo lo que hay en MetaGuid. No se arrojan errores, pero este no es el comportamiento esperado de na.locf. Sin mencionar que exactamente el mismo código funciona cuando uso mi RStudio IDE.

MetaGuid_llenado metaguid Usuario De serie Acción ClientTime_clean
A123456 A123456 A 1 Ver documento 22/10/2019
A123456 A123456 A 1 Ver documento 22/10/2019
A123456 A123456 A 1 Ver documento 22/10/2019
A123456 A123456 A 1 Ver documento 22/10/2019
A123456 A 1 EjecutarBúsqueda 22/10/2019
B987654 B987654 A 1 Ver documento 22/10/2019
B987654 B987654 A 1 Ver documento 22/10/2019
B987654 A 1 EjecutarBúsqueda 22/10/2019

URL

¿cualquier actualización?

Hola rlu,

No estoy familiarizado con el script R, discutiré esto con otros e intentaré reproducirlo en mi entorno. Te informaré tan pronto como lo tenga.

Además, si desea llenarlo, ¿por qué no usar el código M para lograr este objetivo?

Puede reemplazar la celda vacía por nula, luego hacer clic en Rellenar-> abajo

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WcjQ0MjYxNVPSUXIEYkMgDstMLXfJTy7NTc0rAQkZ6BsZ6RsZGFoqxeoMPvVICl0rUpNLS1KDUxOLkjMwVTpZWpibmZoQbTKp6ol0SSwA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [MetaGuid = _t, User = _t, Serial = _t, Action = _t, ClientTime_clean = _t]),
    #"Replaced Value" = Table.ReplaceValue(Source,"",null,Replacer.ReplaceValue,{"MetaGuid"}),
    #"Filled Down" = Table.FillDown(#"Replaced Value",{"MetaGuid"})
in
    #"Filled Down"

441.PNG

Gracias por su comprensión y apoyo.

Atentamente,
zoe zhi

Si esta publicación le ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

URL

En respuesta a dax

Gracias por tu respuesta Zoe. Busco mantener solo una canalización de recopilación de datos, ya que también uso el mismo script R para el análisis fuera de línea y quería usar el mismo script para activar un tablero de PowerBI para monitorear las métricas. Por lo tanto, el código M no será beneficioso para mí.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *