代码之家  ›  专栏  ›  技术社区  ›  Seymour

R-使用函数更好地组织程序工作流和过程

  •  0
  • Seymour  · 技术社区  · 7 年前

    我正在从事一个数据挖掘项目,该项目目前由几个脚本组成。

    以下是众多示例之一:
    在专用于聚类的脚本中,我应用了异常值过滤器

    library(dplyr)
    
    myDF <-
            myDF %>%
            filter(distance > 680) %>%
            filter(time > 120) %>% 
            filter(speed > 5)
    

    我所寻找的是将这个过程“包装”到一个小“节点”中的可能性。在我看来,R中最接近企业矿工节点的是一个函数。因此:

    outlier_filter <- function() {   
                myDF %>%
                filter(distance > 680) %>%
                filter(time > 120) %>% 
                filter(speed > 5)
    }
    

    然而,当我跑步时:

    outlier_filter 
    

    它只是在控制台上打印代码。相反,我希望它像节点一样应用,从DF中过滤异常值。


    另一个例子是“node”/函数 create_features 运行时,执行代码将新变量添加到数据帧。

    希望我说得清楚,谢谢。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Rutger    7 年前

    您只是在打印函数,您可能想使用 outlier_filter()

    然而,这只能通过使用副作用来实现。通常这不是您想要的,解决方案可以是:

    outlier_filter <- function(df) {   
      df %>%
        filter(distance > 680) %>%
        filter(time > 120) %>% 
        filter(speed > 5) %>%
        return()
    }
    

    可以使用调用函数 myDF <- outlier_function(myDF)