Как вычислить среднее значение нескольких столбцов в R


Часто вам может понадобиться вычислить среднее значение нескольких столбцов в R. К счастью, вы можете легко сделать это с помощью функции colMeans() .

colMeans(df)

В следующих примерах показано, как использовать эту функцию на практике.

Использование colMeans() для нахождения среднего значения нескольких столбцов

В следующем коде показано, как использовать функцию colMeans() для нахождения среднего значения каждого столбца во фрейме данных:

#create data frame
df <- data.frame(var1=c(1, 3, 3, 4, 5),
 var2=c(7, 7, 8, 3, 2),
 var3=c(3, 3, 6, 6, 8),
 var4=c(1, 1, 2, 8, 9))

#find mean of each column
colMeans(df)

var1 var2 var3 var4 
 3.2 5.4 5.2 4.2

Мы также можем указать, для каких столбцов нужно найти среднее значение:

#find the mean of columns 2 and 3
colMeans(df[ , c(2, 3)])

var2 var3 
 5.4 5.2 

#find the mean of the first three columns
colMeans(df[ , 1:3])

var1 var2 var3 
 3.2 5.4 5.2

Если есть столбцы, которые не являются числовыми, вы можете использовать sapply() , чтобы указать, что вы хотите найти только среднее значение столбцов, которые являются числовыми:

#create data frame
df <- data.frame(var1=c(1, 3, 3, 4, 5),
 var2=c(7, 7, 8, 3, 2),
 var3=c(3, 3, 6, 6, 8),
 var4=c(1, 1, 2, 8, 9),
 var5=c('a', 'a', 'b', 'b', 'c'))

#find mean of *only* numeric columns
colMeans(df[ sapply(df, is.numeric)])

var1 var2 var3 var4 
 3.2 5.4 5.2 4.2 

И если в каких-либо столбцах пропущены значения, вы можете использовать аргумент na.rm=TRUE , чтобы игнорировать пропущенные значения при вычислении средних значений:

#create data frame with some missing values
df <- data.frame(var1=c(1, 3, NA, NA, 5),
 var2=c(7, 7, 8, 3, 2),
 var3=c(3, 3, 6, 6, 8),
 var4=c(1, 1, 2, 8, NA))

#find mean of each column and ignore missing values
colMeans(df, na.rm= TRUE )

var1 var2 var3 var4 
 3.0 5.4 5.2 3.0

Дополнительные ресурсы

Как перебрать имена столбцов в R
Как суммировать определенные столбцы в R