计算所选列

时间:2018-03-14 18:32:27

标签: r

我不习惯R,所以练习我正在尝试做我以前对SP上的所有操作。

在我的数据集中,每一行都是一个案例。列是调查问题(每个问题1个)。

我说列“A1”到“A6”,“B1”到“B6”等等

我刚刚完成计算A1到A6的每个人的平均值

data$meandata <- rowMeans(subset(data, select=c(A1:A6), na.rm=TRUE))

如何计算meandata的标准偏差?

1 个答案:

答案 0 :(得分:2)

嘿,最简单的方法是使用apply()函数。

假设您有25行数据和6列标记为A1到A6。

data <- data.frame(A1=rnorm(25,50,4),A2=rnorm(25,50,4),A3=rnorm(25,50,4),
A4=rnorm(25,50,4),A5=rnorm(25,50,4),A6=rnorm(25,50,4))

您可以使用apply函数查找每行第1列到第6列的标准偏差,并使用以下代码。第一个参数是您的数据对象。第二个参数是一个整数,指定1表示行,2表示列(这是函数将应用于数据框的方向)。最后一个参数是您希望应用于数据框的函数(例如,在这种情况下的均值或标准差(sd)。请参阅下面的代码。

apply(data[,1:6],1,sd)

索引可用于限制传递给apply函数的数据的行数或列数。这是通过在数据对象后面的括号内输入您感兴趣的行或列的数字向量来完成的。

data[c(row.vector),c(column.vector)]

假设你只想知道前3列的sd。

apply(data[,1:3],1,sd)

现在让我们看一下第4到第6列和第1到10行

的sd
apply(data[1:10,4:6],1,sd)

只是为了好的措施,让我们找到每列的sd

apply(data,2,sd)

请注意,sd接近4,这是我在为A1到A6列生成伪随机数据时指定的。

希望这有帮助

相关问题