Кажется странным, что это не может вернуться.Быстрый взгляд онлайн дал это 3-минутное видео на YouTube , которое использует тот же метод, который вы используете.При дальнейшем поиске источника можно встретить документацию Microsoft , которая дает возможную причину возникновения проблемы.
При подготовке и запуске сценария R вВ Power BI Desktop есть несколько ограничений:
Импортируются только фреймы данных, поэтому убедитесь, что данные, которые вы хотите импортировать в Power BI, представлены в фрейме данных
Столбцы с типом Complex и Vector не импортируются и заменяются значениями ошибок в созданной таблице
Они кажутся наиболееочевидные причины.Ставка на то, что в вашем наборе данных нет сложных столбцов, я думаю, что предыдущая причина, вероятно, является причиной.Быстрое воссоздание вашего набора данных показывает, что функция 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
должно исправить это.
Edit
Для пояснения, я полагаю, что следующий отредактированный скрипт (ваш) должен вернуть ожидаемые данные
# '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