在Execute R中管道
大家好,
我试图利用在Rapidminer中执行R数据操作的dplyr包。除了管道程序,所有的事情都很顺利!
我有这段代码,它不产生任何输出数据集,我得到“内存缓冲文件”作为输出消息。我检查日志文件,每件事似乎都完美地工作!读取的代码:
rm_main = function(数据)
{
库(数据集)
库(dplyr)
NewData < - - - - - - (
数据% > %
突变(Product2= Tot_Product*2) %>%
filter(Life_Phase != "Family") %>%
group_by(City, P_PLUS, Life_Phase) %>%
summary (AVG_Prem= mean(TOT_prem, na.rm=TRUE), AVG_Test= mean(Product2, na.rm=TRUE)) %>%
选择(城市、P_PLUS Life_Phase、AVG_Prem AVG_Test)
)
返回(NewData)
}
这段代码实际上可以在RStudion中工作。
我非常感谢你的帮助。
救世主
最好的答案
-
Thomas_Ott RapidMiner认证分析师,RapidMiner认证专家,会员职位:1761年独角兽
建立在什么基础上@mschmitz也就是说,Execute R操作符允许你将R对象放置到另一个Execute R操作符中,但要将结果输出到RapidMiner中,你必须首先将它转换为函数内部的数据帧。
0 -
MahdiP 成员职位:9因素二世
非常感谢您这么快的回复!
这听起来像是在应用group_by函数的阶段,它会打乱并破坏数据ram的创建。它可以通过将最终结果渲染为Rapidminer这样的数据帧来简单地解决;
rm_main = function(数据)
{
库(数据集)
库(dplyr)
NewData < -
data.frame (
数据% > %
突变(Product2= Tot_Product*2) %>%
filter(Life_Phase != "Family") %>%
group_by(City, P_PLUS, Life_Phase) %>%
summary (AVG_Prem= mean(TOT_prem, na.rm=TRUE), AVG_Test= mean(Product2, na.rm=TRUE)) %>%
选择(城市、P_PLUS Life_Phase、AVG_Prem AVG_Test)
)
返回(NewData)
}现在它输出一个数据集到Rapidminer。
再次感谢你。
救世主
0
答案
亲爱的救世主,
RapidMiner不能解释你在r中可以做的所有类型。如果你发送回一些不可解释的东西,它会作为一个内存缓冲文件进入RM。这不能在RM中使用,而是通过管道返回到另一个R操作符中使用。这是非常有用的,例如建模。
在你的例子中,你的NewData似乎不是一个R数据框架。
~马丁
德国多特蒙德