Как экспортировать фрейм данных R в таблицу Power Query

Я использую сценарий R в Power Query, чтобы выполнить некоторые преобразования данных и вернуть масштабированную таблицу. Мой код R выглядит так:

# 'dataset' 
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
7
0
968
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Кажется странным, что это не возвращается. Беглый просмотр в сети дал это 3-минутное видео на ютубе, который использует тот же метод, что и вы. При дальнейшем поиске источника можно встретить Документация Майкрософт, что дает возможную причину возникновения проблемы.

When preparing and running an R script in Power BI Desktop, there are a few limitations:

  • Only data frames are imported, so make sure the data you want to import to Power BI is represented in a data frame

  • Columns that are typed as Complex and Vector are not imported, and are replaced with error values in the created table

Это кажутся наиболее очевидными причинами. Держу пари, что в вашем наборе данных нет сложных столбцов, я полагаю, что причина, скорее всего, в предыдущем. Быстрое воссоздание вашего набора данных показывает, что функции scale превращают ваш набор данных в объект класса matrix. Это сохраняется cbind, и поэтому вывод относится к классу matrix, а не data.frame.

>dataset <- as.data.frame(abs(matrix(rnorm(1000),ncol=4)))
>class(dataset)
[1]"data.frame"
>library(dplyr)
>df_normal <- log(dataset + 1) %>%
>    select(c(2:4)) %>%
>    scale 
>class(df_normal)
[1] "matrix"
>df_normal <- cbind(dataset[,1], df_normal)
>output <- df_normal
>class(output)
[1] "matrix"

Казалось бы, простым исправлением будет добавление output <- as.data.frame(output), поскольку это соответствует документации powerBI. Может быть, в конце понадобится return лайк. Добавление строки в конце скрипта, просто указывающей output, должно исправить это.

Редактировать

Для пояснения, я считаю, что следующий отредактированный скрипт (ваш) должен возвращать ожидаемые данные

# 'dataset' contém os dados de entrada neste script

library(dplyr)

df_normal <- log(dataset+1) %>%
select(c(2:4)) %>%
scale
df_normal <-cbind(dataset[,c(1)], df_normal)
output <- as.data.frame(df_normal)
#output  ##This line might be needed without the first comment 

Спасибо за вашу помощь! Я искал документацию, но не смог найти, где определяются «набор данных» и «вывод». В любом случае, теперь кажется очевидным, что они означают таблицу, которую мы только что импортировали, и таблицу, которую мы хотим экспортировать в Power Query. Кстати, вы знаете, где я могу найти другой подходящий синтаксис для интеграции R-скриптов с Power Query? Теперь, чтобы ответить на ваши комментарии выше, вы абсолютно правы! Я не понимал, что нормализация изменит df на матрицу (и почему). Но преобразовал его обратно в df, сделал это, спасибо!

user882670 11.05.2019 21:31

Я рад, что смог помочь. Документация кажется очень скудной. Я бы посоветовал посмотреть другие примеры, некоторые из которых доступны здесь. К сожалению, у меня недостаточно опыта работы с PowerBI, чтобы дать более подсказки. Тем не менее, из двух приведенных выше пунктов вы можете выполнять любые вычисления, а затем преобразовывать данные в data.frame. Если бы кто-то использовал линейную модель и хотел бы получить коэффициенты, у вас мог бы быть столбец, в котором указан коэффициент, чтобы впоследствии его можно было идентифицировать напрямую в powerBI.

Oliver 11.05.2019 21:44

Power BI — отличный инструмент для BI (как и должно быть). Я считаю, что, сочетая свои возможности с точки зрения очистки и представления данных с алгоритмами R, он может быть невероятно мощным (поскольку интерфейс R предназначен для специалистов по данным). Как перенести данные из R в Power BI — это то, что я сейчас изучаю, так что еще раз большое спасибо за вашу помощь!

user882670 11.05.2019 22:43

Другие вопросы по теме