0

我有一个具有以下结构的数据框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(通过次数)/(总计数)和标准错误。

4

1 回答 1

3

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

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

对于标准错误,将您的 stdErr 函数替换为平均值。

如果你想跨多列计算一些东西,你可以索引 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.

于 2012-10-11T20:30:45.910 回答