我的数据框结构如下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(通过次数)/(总计数)和标准错误。
答案 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
。