如何在 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

请注意,两种方法返回相同的结果。

相关: R 中 apply()、lapply()、sapply() 和 tapply() 指南

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注