Как перебрать имена столбцов в R (с примерами)


Часто вы можете захотеть перебрать имена столбцов фрейма данных в R и выполнить некоторую операцию над каждым столбцом. Есть два распространенных способа сделать это:

Способ 1: используйте цикл for

for (i in colnames(df)){
 some operation
}

Способ 2: использовать sapply()

sapply(df, some operation )

В этом руководстве показан пример использования каждого из этих методов на практике.

Способ 1: используйте цикл for

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

#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))

#view data frame
df

 var1 var2 var3 var4
1 1 7 3 1
2 3 7 3 1
3 3 8 6 2
4 4 3 6 8
5 5 2 8 9

#loop through each column and print mean of column
for (i in colnames(df)){
 print( mean(df[[i]]))
}

[1] 3.2
[1] 5.4
[1] 5.2
[1] 4.2

Способ 2: использовать sapply()

В следующем коде показано, как пройтись по именам столбцов фрейма данных с помощью 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))

#view data frame
df

 var1 var2 var3 var4
1 1 7 3 1
2 3 7 3 1
3 3 8 6 2
4 4 3 6 8
5 5 2 8 9

#loop through each column and print mean of column
sapply(df, mean )

var1 var2 var3 var4 
 3.2 5.4 5.2 4.2 

Обратите внимание, что оба метода возвращают идентичные результаты.

Связанный: Руководство по apply(), lapply(), sapply() и tapply() в R