在Execute R中管道

MahdiPMahdiP 成员职位:9因素二世
2018年11月编辑 帮助

大家好,

我试图利用在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_OttThomas_Ott RapidMiner认证分析师,RapidMiner认证专家,会员职位:1761年独角兽
    解决方案接受

    建立在什么基础上@mschmitz也就是说,Execute R操作符允许你将R对象放置到另一个Execute R操作符中,但要将结果输出到RapidMiner中,你必须首先将它转换为函数内部的数据帧。

  • MahdiPMahdiP 成员职位: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。

    再次感谢你。

    救世主

答案

  • MartinLiebigMartinLiebig 管理员,版主,员工,RapidMiner认证分析师,RapidMiner认证专家,大学教授职位:3287年RM数据科学家

    亲爱的救世主,

    RapidMiner不能解释你在r中可以做的所有类型。如果你发送回一些不可解释的东西,它会作为一个内存缓冲文件进入RM。这不能在RM中使用,而是通过管道返回到另一个R操作符中使用。这是非常有用的,例如建模。

    在你的例子中,你的NewData似乎不是一个R数据框架。

    ~马丁

    - RapidMin乐鱼平台进入er数据科学服务主管
    德国多特蒙德
登录注册置评。