span8
span4
简介:入门RCaller|下一页:RCaller:是树高和树宽度有关?
如果您需要执行更高级的统计比处于可用StatisticsCalculator互感器,RCaller变压器使得FME更先进的统计分析成为可能。该RCaller为您提供了FME运行[R脚本的能力。
rcallerlinearregressionwithgroups.fmwt
之前您可以使用RCaller您需要安装相应的R封装。参见节安装将R解释在FME用户文档。
在你获得与RCaller去那里的一对夫妇有用的东西要记住:
FME你变压器或特征类型连接到连接输入端口增加了新的端口连接到RCaller。新的输入端口将从源对象(即变压器名称或功能类型名称)继承了它的名字。
端口名称用作R中的数据框名称,因此重命名端口名称的东西,你就可以在你的[R脚本中使用。
FME加载数据到临时SQLite数据库,所以对于性能和清晰度,只选择你会在你的[R脚本中使用的属性。确保数据类型是正确的。
FME的数据为R传送作为A R数据帧。您可以通过拖动从数据帧中的菜单项访问你的[R脚本的数据帧或数据帧列:
因此,要访问的估计值的向量拖动数据 - 预计项目到脚本窗口,你会看到数据$估计在[R脚本窗口。
这不是的R教程。要了解更多关于R,请参阅参考资料部分在本文的结尾。如果你是新来的R,我建议你使用R控制台来开发和调试脚本 - 你会得到更好的反馈,这是一个比较容易看到的中间结果。然后复制并粘贴脚本到RCaller。逐步在R控制台构建脚本所以很明显,其中出现任何问题。您可以加载使用您的数据的样本[R读者:即:
数据= read.csv( “d:/tmp/SampleData.csv”)
#注意R使用UNIX的路径,即'/' 而不是 '\'。
...可能会非常棘手!RCaller经由被称为“fmeOutput”的数据帧将数据传递回FME。在数据帧中的每一行都将成为FME一个单独的输出特征。如果你知道如何建立并追加到R数据帧你也许可以跳过这一节。
要填充fmeOutput数据帧,可以简单地传回值的(长度为一的矢量)的列表,即:
>数据= read.csv( “d:/tmp/SampleData.csv”)> meanAct =平均(数据$实际)>最低劣=平均(数据$估计)> fmeOutput = data.frame(最低劣,meanAct)
但许多R的功能和返回更加复杂的结果。例如线性回归函数求解表达式y = mx + K:
lm.linear < - 流明(估计的数据$实际〜数据$)
用R摘要()函数来查看结果:
>摘要(lm.linear)调用:LM(式=数据$实际〜数据$估计)残差:闵1Q中值最大3Q -9.9667 -2.1022 0.2679 2.3813 8.3354系数:估计标准。误差吨值Pr(> | T |)(截距)12.051001 9.149612 1.317 0.211数据$估计-0.009291 0.861531 -0.011 0.992残余标准误差:5.045 13自由度的多个R平方:8.946e-06,调整R方:-0.07691 F-统计:0.0001163 1和13 DF,p值:0.9916
如何找回来到FME?
该名称()功能会退给你的变量名的总结,即:
>名称(摘要(lm.linear))[1] “呼叫”, “条件”, “残差”, “系数”, “混叠”[6] “西格马”, “DF”, “r.squared” “adj.r.squared”“fstatistic” [11] “cov.unscaled”
但...其中也不乏一些更复杂的对象在自己的权利,如“系数”:
>摘要(lm.linear)$的系数评估标准。错误的t值PR(> | T |)(拦截)12.051001492 9.1496116 1.31710525 0.2105480数据$估计-0.009291111 0.8615308 -0.01078442 0.9915592
所以,我们要做什么,如果你想回到FME的表达式y = mx + K分析的共同特点,如R平方值,M&K?
你必须挑选出你需要的值,并将其传递给fmeOutput数据帧。在上面的例子中,M是由数据$估算估算值= -0.009291111且k(y轴截距)给出的是通过(截距)估算值= 12.051001492给出和R平方结果是简单值:r.squared。所以,你可以使用:
ķ< - 摘要(lm.linear)$系数[1,1](第一行的第一列)米< - 摘要(lm.linear)$系数[2,1](第一行的第二列) r2 <- summary(lm.linear)$r.squared
那很简单!
工作区rcallerlinearregression.fmwt示出了上述例子。
最后一个提示:暴露在RCaller结果变量,使生活更轻松的工作台:
在某些情况下,可能不适合使用的数据帧可以供大家结果,即对于大的光栅或图像。在这种情况下,您可以将[R结果导出到一个临时数据文件,并有FME重读这些结果。文章RCaller:插值点转栅格通过克里格说明你如何能做到这一点。
对于许多统计问题,你有一个质的值,即代码ABC ABD TXU,这对定量值一定的影响。如此简单的分组使得有很大的意义。
例如,您可能要计算每个代码值的平均值:
日期代码估计的实际2016年11月29日TXU 46.14 59.5 2016年11月28日ABD 43.89 34.1 2016年11月27日TXU 42.15 25.8 2016年11月27日ABC 9.3 20.3 2016年11月26日ABD 42.15 50.6 2016年11月25日ABC 11.04 11.7
你可以把你的分析在一个循环中,品尝由代码数据,然后计算回归。就像是:
对于(以独特(数据$代码currentCode)){#假设输入data.frame是 '数据' tmpdata伪=数据[数据$代码== currentCode,] LM = LM(tmpdata伪$实际〜tmpdata伪$估计)#线性模型 on y = mx+k }
#初始化向量以保持结果R2 < - C()M < - C()K < - C()的代码< - 字符()#Y =实际X =估计为(在独特(数据$代码currentCode)){tmpdata伪 = Data[Data$Code == currentCode,] # linear regression for y = mx+k lm.linear = lm(tmpData$Actual ~ tmpData$Estimated) # linear model result vectors y = mx+k r2 = c(r2, summary(lm.linear)$r.squared) k = c(k, summary(lm.linear)$coefficients[1,1]) m = c(m, summary(lm.linear)$coefficients[2,1]) Code = c(Code, currentCode) } fmeOutput<-data.frame(Code, m, k, r2)
您可以直接将结果赋予这将是更有效的,如果你可以计算出来的数据帧。
工作区rcallerlinearregressionwithgroups.fmwt示出了上述例子。
调试[R脚本
如果你是比较新的R,那么我建议你先开发脚本在R控制台,然后转移到RCaller。这是一个更容易调试那里,请参见构建的R上面的脚本。如果遇到RCaller错误:
ERROR | RCaller(InlineQueryFactory):InlineQueryFactory执行ř脚本时失败,退出代码1。输出是:加载所需的程序包:gsubfn加载所需的程序包:原加载所需的程序包:RSQLite
这似乎是一个常见的错误反应,如果在你的脚本,或者一个未定义的变量引用语法错误,所以仔细检查你的脚本未分配变量或拼写错误。
请记住,像FME,R是区分大小写的。
以下是各地FME,使用R一些有用的资源:
FME RCaller文件
'R' 教程:http://www.r-tutor.com/和这里
使用提取摘要()“摘要”信息:例如这里
附加到一个数据帧例子
知识中心RCaller文章:
©2019安全亚搏在线软件公司|法律