如何在 R 中创建一个循环来计算每列的值?

How to create a loop in R to calculate a value for each column?

我想计算下面数据集中每一列的标准差:

    a b c
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9

我试过像这样创建一个循环:

for (x in 1:3){
  sdcol=sd(data[,x])
}

但是我收到以下错误:

Error in data[, x] : object of type 'closure' is not subsettable

你能帮我做这样一个循环吗?

谢谢

编辑

我建议你试试这个命令,它比 for 循环更快。确保您的变量都是数字。如果您的列包含缺失值

,则 na.rm = TRUE 参数很有用
sapply(data, sd, na.rm = TRUE)

例子

sapply(iris[,1:4], sd, na.rm = TRUE)
Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
   0.8280661    0.4358663    1.7652982    0.7622377 

我们也可以用

library(dplyr)
iris %>%
     summarise_at(1:4, sd, na.rm = TRUE)