主题中的问题:“R RCaller” https://knowledge.亚搏在线safe.com/questions/topics/single/37689.html网站 关于“R R RCaller”主题的最新问题 返回空列的调用程序 https://knowledge.亚搏在线safe.com/questions/85014/rcaller-returning-empty-columns.html

嗨,大家好,

我正试图使用RCaller从项目现场的气压记录器获取的一组数据中插入水记录器中的气压。当我在rstudio中运行并返回正确结果时,我使用的r脚本是works,它运行时不会在FME中产生误差,但是计算的值(内插大气压)是 当他们被带出RCaller进入FME时。

任何建议都将不胜感激!

谢谢

千斤顶

脚本编写 拉客 R呼叫器 星期二,2019年1月8日20:55:31格林尼治标准时间 杰科林斯
如何使用RCaller和FME? https://knowledge.亚搏在线safe.com/questions/53551/how-do-you-use-the-rcaller-and-fme.html

这里是保险箱,亚搏在线我们一直在努力改进FME以及我们的知识中心文章。最近我们注意到,我们不太了解我们的用户如何使用RCaller变压器集成R和FME,以及他们正在用它完成的伟大的事情!

我们的问题是:
  1. 你如何使用卡勒变压器?
  2. 您有没有想看的与RCaller相关的文章?

R呼叫器 星期二,2017年9月19日格林尼治标准时间21:24:44 利兹桑德森
RCaller超时错误 https://knowledge.亚搏在线safe.com/questions/48564/rcaller-timeout-error.html

我在一个工作台中使用一个RCaller来处理一些相当大的数据集。我使用的r脚本本身在r中工作良好,并且工作台与一个较小的测试数据集完美地运行。

但是,对于全尺寸的数据集,我会得到以下错误:在最后一个功能进入RCaller和rscript.exe进程开始后约30秒:

RCaller(inlinequeryfactory):inlinequeryfactory在启动R解释器时遇到错误。消息为:进程操作超时

在rgui或rstudio中使用相同大小的数据集运行,我要做的处理大约需要10分钟。但是,处理是按组进行的,因此我使用并行模式的ddply包将处理拆分为10个核心,这一过程大约需要1分钟。

我已经把这个转移到了故障模式分析的调查员那里,它启动了10个过程,但30秒后仍会超时。

如何使用RCaller来完成超过30秒的输出工作?有没有办法吐出“某物”,让FME知道它运行正常,应该等待?

拉客 R R呼叫器 周一,2017年7月24日17:05:36格林尼治标准时间 哈里13
教程:开始使用RCaller https://knowledge.亚搏在线safe.com/articles/37979/tutorial-getting-started-with-the-rcaller.html

下一节:RCaller:在FME中使用R的进退两难

介绍

如果需要执行比统计计算器变压器,这个变压器使更多的统计分析在FME中成为可能。RCaller允许用户在FME中运行R脚本,通过使用临时R数据帧.

调解员:在FME中使用R的进退两难

这个例子涵盖了重要的RCaller基础知识,一些潜在用途的例子,还有一些卡勒的挑战。

卡勒:树高和树宽相关吗?

确定此RCaller演示中树的高度和树的直径之间是否存在相关性。

RCaller:通过克里格插值点到光栅

RCaller可用于从点创建光栅。在这个例子中,克里金,插值法,用于根据单元信号点数据创建估计曲面。

继续传唤:在FME中使用R的进退两难

统计学 拉客 R呼叫器 清华大学,2016年12月22日23:27:04格林尼治标准时间 纳塔利亚特保险箱亚搏在线
调解员:在FME中使用R的进退两难 https://knowledge.亚搏在线safe.com/articles/37690/rcaller-ins-and-out-of-using-the-rcaller.html

简介:开始使用RCallerγ下一步:RCaller:树高和树宽是否相关?

介绍

如果需要执行比统计计算器变压器,这个变压器使更高级的统计分析在FME中成为可能。RCaller使您能够在FME中运行R脚本。

下载

调解员线性回归.fmwt

带有groups.fmwt的rcallerlinearegressionwithgroups.fmwt

入门

在使用RCaller之前,您需要安装适当的R包。请参见安装R解释器在FME用户文档中。

在你和卡勒一起走之前,有一些有用的事情要记住:

  • R不喜欢UNC路径名,因此不能运行存储在UNC路径上的FME工作区,例如:\\myprojects\fmeworkspace。你必须在一个映射驱动器上运行你的FME工作区,例如:f:\myprojects\fmeworkspace
  • 读一点关于R的书,如果你还不熟悉这些概念。这是一个相当好的辅导的.本文最后列出了更多的资源。

源数据

当您将变压器或功能类型连接到连接输入端口时,FME会向RCaller添加新端口。新的输入端口将从源对象继承其名称(即转换器名称或功能类型名称)。

端口名用作r中的数据帧名,因此,将端口名重命名为可以在R脚本中使用的名称。

FME将您的数据加载到一个临时的sqlite数据库中,因此,无论是性能还是清晰度,只选择要在R脚本中使用的属性。确保数据类型正确。

FME将数据作为R传输到R中。数据帧.通过从“数据帧”菜单中拖动项,可以访问R脚本中的数据帧或数据帧列:

因此,要访问估计值的向量,请将data-estimated项拖到脚本窗口中,您将在r脚本窗口中看到data$estimated。

构建R脚本

这不是R教程。要进一步了解R,请参阅本文末尾的参考资料部分。如果你刚接触R,我建议您使用R控制台来开发和调试您的脚本——您将获得更好的反馈,并且可以更容易地看到中间结果。然后复制脚本并将其粘贴到RCaller中。在R控制台中逐步构建您的脚本,这样就可以清楚地知道出现了什么问题。您可以使用R读者也就是说:

data=read.csv(“d:/tmp/sampledata.csv”)。

γ注释r使用unix路径,即'''不是''.

从R中得到结果…

…可能很棘手!RCaller通过名为“fmeoutput”的数据帧将数据传回fme。数据帧中的每一行将成为FME中的单独输出功能。如果您知道如何构建和附加到R数据帧,您可能会跳过这一部分。

要填充fmeoutput数据框,您只需返回一个值列表(长度为1的向量)。即。:

>data=read.csv(“d:/tmp/sampledata.csv”)>meancact=平均值(数据$actual)>meanest=平均值(数据$estimated)>fmeoutput=数据.frame(平均值,平均行为)
这将导致一个具有两个平均值的FME特征,这些平均值具有FME属性名称meanx和meany。

但是许多r函数返回更复杂的结果。例如,线性回归函数求解y=mx+k:

lm.linear<-lm(数据$actual~数据$estimated)

使用R摘要()函数查看结果:

>总结(lm.线性)调用:lm(公式=数据$实际值~数据$估计值)残差:最小1q中值3q最大值-9.9667-2.1022 0.2679 2.3813 8.3354系数:估计标准。误差t值pr(>t)(截距)12.051001 9.149612 1.317 0.211数据$Estimated-0.009291 0.861531-0.011 0.992剩余标准误差:13自由度5.045多重r平方:8.946e-06,调整后的r平方:1和13 df上的-0.07691 f统计量:0.0001163,p值:0.9916

如何将其恢复到FME中?

这个名称()函数将返回摘要中的变量名,即。:

>名称(summary(lm.linear))[1]“call”“terms”“residuals”“coefficients”“aliased”[6]“sigma”“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?

您必须挑选出您需要的值,并将它们传递到FMEOUT数据帧。在上面的例子中,M由数据给出$Estimated Estimate=-0.009291111,K(y Intercept)由(Intercept)Estimate=12.051001492给出,R平方结果为简单值:R平方。所以你可以使用:

K<-摘要(lm.linear)$系数[1,1](第一行第一列)M<-摘要(lm.linear)$系数[2,1](第一行第二列)R2<-摘要(lm.linear)$R.squared

那很容易!

工作空间调解员线性回归.fmwt说明了上面描述的示例。

最后一个提示:在RCaller中公开结果变量,以使工作台中的生活更轻松:

将r结果导出到临时文件

在某些情况下,可能不适合为R结果使用数据帧,例如,对于大型光栅或图像。在这种情况下,您可以将R结果导出到临时数据文件,并让FME重新读取这些结果。文章RCaller:通过克里格插值点到光栅说明如何做到这一点。

用循环分组

对于许多统计问题,你有一个定性的价值,即代码abc abd txu,这与定量值有一定关系。所以简单的分组很有意义。

例如,您可能需要计算每个代码值的平均值:

日期代码预计实际11/29/2016XU46.1459.511/28/2016ABD43.8934.111/27/2016XU42.1525.811/27/2016ABC9.320.311/26/2016ABD42.1550.611/25/2016ABC11.0411.7

你可以把你的分析放在一个循环中,用代码对数据进行采样,然后计算回归。类似:

对于(unique中的currentcode(data$code))假设输入数据。帧是'data'tmpdata=data[数据$code==currentcode,]lm=lm(tmpdata$actual~tmpdata$estimated)y=mx+k上的线性模型
但你不能只使用:
r2<-总结(lm)$r.squared
要返回结果,因为您将只返回三个计算值中的最后一个r2。
一种方法是为每个结果构建向量,然后将这些结果向量复制到FME输出数据帧。
#初始化向量以保存结果r2<-c()m<-c()k<-c()code<-character()y=实际x=估计值(currentcode in unique(data$code))tmpdata=data[data$code==currentcode,]linear regression for y=m x+k lm.linear=lm(tmpdata$actual~tmpdata$estimated)linear model result vectors y=m x+k r2=c(r2,汇总(lm.linear)$r.squared)k=c(k,总结(lm.线性)$系数[1,1])m=c(m,汇总(lm.线性)$系数[2,1])代码=C(代码,当前代码)fmeoutput<-data.frame(代码,MKR2)

您可以将结果直接分配给更高效的数据帧,如果你能弄明白的话。

工作空间带有groups.fmwt的rcallerlinearegressionwithgroups.fmwt说明了上面描述的示例。

调试R脚本

如果你对R比较陌生,然后我建议您首先在R控制台中开发脚本,然后转移到RCaller。在那里调试要容易得多,请参见上面构建R脚本一节。如果遇到RCaller错误:

错误RCaller(inlinequeryfactory):执行R脚本时,inlinequeryfactory失败,退出代码为1。输出为:正在加载必需的包:gsubfnloading必需的包:protocoading必需的包:rsqlite

如果脚本中有语法错误,这似乎是常见的错误响应,或未定义的变量引用,因此,请仔细检查脚本中是否有未分配的变量或拼写错误。

记得,像FME一样,R区分大小写。

其他资源

以下是有关在FME中使用R的一些有用资源:

呼气末正压通气文档

“R”教程:网址:http://www.r-tutor.com/在这里

使用summary()提取“summary”信息:这里例子

附加到数据帧实例

知识中心调解员文章:

RCaller:通过克里格插值点到光栅

卡勒:树高和树宽相关吗?

继续往下讲:树高和树宽相关吗?

统计学 拉客 R呼叫器 结婚,2016年12月14日22:56:13格林尼治标准时间 MARKAT亚搏在线ABLE