私はこのような機能を持っています:
remove_outliers<-function(x){
qnt<- quantile(x,probs=0.99)
y<- x
y[x>qnt]<- NA
y}
目的は、データの上位 1% にある外れ値を削除することです (それらの値を NA に置き換えます)。この関数を因子変数のレベル全体に適用するにはどうすればよいですか?
例えば、
グループ A と B を持つ元のデータセット:
group share
A 100
A 50
A 30
A 10
... ...
B 100
B 90
B 80
B 60
... ...
次のようになります。
group share
A NA
A 50
A 30
A 10
... ...
B NA
B 90
B 80
B 60
... ...
私はすでに、tapply、sapply で試しましたが、これらはすべてデータセット出力の構造を変更します。