データを解析していると「一定範囲外のデータをすべて同じ値」で処理したくなる時があります。forやif関数などを組み合わせることで処理できますが、本パッケージを利用するとすぐに解決です。
パッケージバージョンは0.2.4。実行コマンドはR version 4.2.2で確認しています。
パッケージのインストール
下記、コマンドを実行してください。
#パッケージのインストール install.packages("devtools") devtools::install_github("derek-damron/transformr")
実行コマンド
詳細はコメント、パッケージのヘルプを確認してください。
#パッケージの読み込み library("transformr") ###データ例の作成##### TestData <- sample(1:500, 100, replace = TRUE) ####### #データ内容の確認 summary(TestData) Min. 1st Qu. Median Mean 3rd Qu. Max. 7.0 133.0 253.0 244.2 364.8 500.0 #データ範囲を指定した値で変換してトリミング #実数で指定 TrimVTestData <- trim(TestData, lo = 200, hi = 300, method = "value") summary(TrimVTestData) Min. 1st Qu. Median Mean 3rd Qu. Max. 200.0 200.0 253.0 248.5 300.0 300.0 #パーセントで指定 TrimPTestData <- trim(TestData, lo = .2, hi = .4, method = "percentile") summary(TrimPTestData) Min. 1st Qu. Median Mean 3rd Qu. Max. 105.2 133.0 193.5 167.4 193.5 193.5 #データの結合と整形 PlotData <- data.frame(TestData, TrimVTestData, TrimPTestData) library("tidyr") PlotData <- gather(PlotData) #図で確認 library("ggplot2") GJPLot <- ggplot(aes(x = PlotData[, 1], y = PlotData[, 2]), data = PlotData) GJPLot + geom_boxplot(fill = c("#4b61ba", "#a87963", "#deb7a0")) + geom_jitter() + labs(x = "", y = "")
出力例
図で確認
少しでも、あなたの解析が楽になりますように!!