我有这样的功能:
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,但是这些都改变了数据集输出的结构。