嗨,我有一个包含 150 列和 200 行的数据框,我想遍历每一列并从每列的平均值中提取超过 3 sd 的任何数据点。
G-198804 | G-198712 | G-228253 | G-198899 | |
---|---|---|---|---|
X1027 | 15.100481 | 15.949672 | 13.783062 | 17.106806 |
X1104 | 14.905931 | 15.766908 | 13.885380 | 17.134476 |
X5010 | 15.268376 | 16.457303 | 13.447923 | 17.345957 |
X5023 | 15.513746 | 16.457871 | 13.848918 | 17.634144 |
X5425 | 15.093679 | 16.085498 | 13.253646 | 17.066823 |
X7CUH | 15.471564 | 16.417165 | 13.764880 | 17.365255 |
X8VHB | 15.222530 | 16.440389 | 13.146401 | 17.158754 |
VWU2 | 14.999256 | 16.121702 | 13.261694 | 17.193140 |
CUKX | 14.795677 | 16.076999 | 13.325234 | 17.145046 |
我用它来用 NA 替换异常值,但我意识到我需要一个单独的 df 中的异常值。有什么方法可以修改它以仅提取异常值单元格的行名和列名?
newtpose = tpose_genexp %>% mutate_at(.vars = vars(contains("ENSG")), .funs= ~ifelse(abs(.)>mean(.)+3*sd(.), NA, .))