2017-11-15 2 views
0

現在、いくつかのスクリプトで構成されているデータマイニングプロジェクトに取り組んでいます。R - プログラムワークフローと機能を使用したプロセスの整理を改善する

私がしたいのは、各スクリプトで実行されるプロセスを関数を使って整理することです。

多くの例の一つは、次のようになります
私は外れ値、私は探しています何

library(dplyr) 

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

ためのフィルタを適用するクラスタリングするための専用のスクリプト内 は内部このプロセス「ラッピング」の可能性であります小さな "ノード"。私の考えでは、RのEnterprise Minerノードに最も近いものは関数です。したがって:

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

は、私が実行したとき:

outlier_filter 

は、それは単にコンソール上のコードを印刷します。代わりに、DFから異常値をフィルタリングするノードのような動作を適用したいと思います。

私は他の提案をしていますが、主な点は単に作業を実行するだけで、私が取り組んでいるデータフレームにその効果を適用したいということです。
「ノード」/関数create_featuresを実行すると、新しい変数をデータフレームに追加するコードが実行されます。

希望しました。ありがとうございました。あなただけの機能を印刷している

+0

たぶん 'outlier_filter()'を使用して関数を呼び出すことができます。通常、これは解決策が考えられ、あなたが望むものではありませんか? – lmo

+0

@lmo地球環境の中の 'myDF'には影響しません。エンリコが後になっていると思います。その場合は、たとえば、<< << - のようになります – duckmayr

+1

関数の出力を再割り当てするだけです。これは関数型プログラミングで推奨される方法です。 – lmo

答えて

0

、あなたはおそらくしかし、これが唯一の副作用を使用して仕事ができる

outlier_filter()を使用して、それを呼びたいです。

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

あなたはmyDF <- outlier_function(myDF)

関連する問題