Вы можете сначала выбрать столбцы, для которых вы хотите применить mean
и sd
. Предполагая, что вы хотите столбцы, заканчивающиеся на "P"
. Затем вычислите построчно sd
и построчно mean
, сравните значения и верните соответствующее gene_symbol
.
cols <- grep("P$", names(df))
df$gene_symbol[apply(df[cols],1,sd, na.rm = TRUE) > rowMeans(df[cols],na.rm = TRUE)]
Для вычисления sd
мы также можем использовать функцию rowSds
из matrixStats
пакета
library(matrixStats)
df$gene_symbol[rowSds(as.matrix(df[cols]), na.rm = TRUE) >
rowMeans(df[cols], na.rm = TRUE)]