set.seed(1234)
df <- data.frame(
cola = runif(10, min=0, max=100),
colb = runif(10, min=0, max=100),
colc = runif(10, min=0, max=100))
df
Вывод вышеуказанного скрипта:
cola colb colc
1 11.3703411 69.35913 31.661245
2 62.2299405 54.49748 30.269337
3 60.9274733 28.27336 15.904600
4 62.3379442 92.34335 3.999592
5 86.0915384 29.23158 21.879954
6 64.0310605 83.72956 81.059855
7 0.9495756 28.62233 52.569755
8 23.2550506 26.68208 91.465817
9 66.6083758 18.67228 83.134505
10 51.4251141 23.22259 4.577026
Моя цель: если one cell value < mean(column)+10
, я удалю целые row
.
Например,
В row 1
, df[1,'cola']
<<code>mean(df$cola), тогда row 1
будет удалено.
В row 2
, поскольку df[2,'colc']
<<code>mean(df$colc), тогда row 2
будет удалено.
Наконец, ожидаемый результат:
cola colb colc
6 64.0310605 83.72956 81.059855
Я могу использовать subset(df,cola>mean(cola)+10 & colb>mean(colb)+10 & colc>mean(colc)+10)
, чтобы получить ожидаемый результат, но это не умный метод, когда во фрейме данных есть сотни столбцов.
Кажется, следует использовать семейство функций apply
. Как я могу это сделать?
Заранее спасибо!