[英]Run R Script on Power BI Column
我在 Power Bi 中有一个包含许多列的数据集,其中包含有关事故单的信息(例如解决问题需要多长时间等)
不幸的是,我得到的数据不是正确的时间格式。 我写了一个简单的 R 函数,它会重新计算时间并返回正确的值:
calculateHours <- function(hours) {
x <- trunc(hours/24)
rest <- mod(hours,24)
y <- trunc(rest/10)
z <- mod(rest,10)
result <- (((x+y)*10)+z)
return(result)
}
示例:如果您通过函数运行它,204 小时将变成 92 小时。
现在我需要有一个包含计算值的新列。 例如,“业务经过时间 = 204”->“业务经过时间计算(新列)= 92”
如何在 Power BI 中使用此函数添加一个新列,该列使用来自该表另一列的值,然后计算正确的时间值?
我还是 Power Bi 和 R 的新手,所以任何帮助将不胜感激! 提前致谢!
在 Power BI 查询编辑器中,您可以向查询添加 R 脚本(转换 -> 运行 R 脚本)。 这是一个简单的示例,假设您有一列Number
:
# 'dataset' holds the input data for this script
myfunction <- function(x)
{
return (x + 1)
}
dataset$NewNumber <- myfunction(dataset$Number) ## apply function and add result as new column
output <- dataset ## PowerBI uses "output" as result from this query step
这是更详细的介绍: https : //www.red-gate.com/simple-talk/sql/bi/power-bi-introduction-working-with-r-scripts-in-power-bi-desktop-part- 3/
Power Query 可以使用 M 公式处理大部分计算本身。 它比调用 R 脚本要简单得多,集成度更高,而且可能更快。
在 Power Query Editor 中,导航Add Column > Custom Column ,然后输入 M 公式,如下所示。
let
x = Number.IntegerDivide([Hours], 24),
rest = Number.Mod([Hours], 24),
y = Number.IntegerDivide(rest, 10),
z = Number.Mod(rest, 10),
result = (x + y) * 10 + z
in
result
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.