计算数据帧的平均值,标准误差和R%

时间:2012-10-11 20:10:28

标签: r plyr

我的数据框结构如下dput(scoreDF)

scoreDF <- structure(list(ID = c(1, 2), Status = structure(c(2L, 1L),
  .Label = c("Fail", "Pass"), class = "factor"), Subject_1_Score = c(100, 25),
  Subject_2_Score = c(50, 76)), .Names = c("ID", "Status", "Subject_1_Score",
  "Subject_2_Score"), row.names = c(NA, -2L), class = "data.frame")

现在,我需要提出通过和失败的学生百分比,通过和失败的学生的意思,标准错误。

对于标准错误,我定义了一个函数如下:

stdErr <- function(x) {sd(x)/ sqrt(length(x))}

我期望x成为需要计算标准误差的向量。

我见过ddply的文档,但我无法弄清楚如何计算上面数据框的%ie(通过次数)/(总计数)和标准错误。

1 个答案:

答案 0 :(得分:3)

您可以使用tapply计算组统计信息。如果您的数据框被称为学生,那么通过合格/不合格计算平均值,您将指定:

tapply(students$Subject_1_Score, students$Status, FUN=mean)

对于标准错误,请将stdErr函数替换为mean。

如果要跨多列计算某些内容,可以索引x:

tapply(students[,2:3], students$Status, FUN=mean)

计算通过的学生百分比:

dim(students[students$Status == "Pass" ,])[1] / dim(students)[1]

或者得分:

dim(students[students$Subject_1_Score >= 65 ,])[1] / dim(students)[1]

以上是使用索引的这种类型的向量语句的数据框示例:

length(x[x == "Pass"]) / length(x)

要计算跨行或列的函数,可以使用apply