计算数据帧的平均值、标准误差和R百分比
我有一个具有以下结构的数据帧,计算数据帧的平均值、标准误差和R百分比,r,plyr,R,Plyr,我有一个具有以下结构的数据帧,dput(scoreDF): scoreDF您可以使用tapply计算组统计数据。如果您的数据框被称为学生,那么要计算通过/失败的平均值,您需要指定: tapply(students$Subject_1_Score, students$Status, FUN=mean) 对于标准误差,用stdErr函数代替mean 如果要跨多列计算某些内容,可以索引x: tapply(students[,2:3], students$Status, FUN=mean) 要计算通
dput(scoreDF)
:
scoreDF您可以使用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
计算组统计信息。如果您的数据框被称为学生,那么要计算通过/失败的平均值,您需要指定:
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
,这不是一个可重复的问题。如需灵感,请参阅。如果我理解您的问题,则无需plyr
<代码>nrow(数据[数据$Status='Pass',])/nrow(数据)
。除非您想在ID
上拆分<代码>ddply(数据、ID、摘要、和(状态==‘通过’)/长度(状态)@Justin:我希望找到一种不必硬编码值的方法,比如Status=='Pass'
。这就是为什么我试图用ddply
找到一些东西。是否可以用Status
而不是ID
来总结我不明白如何计算\passes/total
>没有“硬编码”这一事实。这不是一个可重复的问题。请参阅,例如,获取灵感。如果我理解你的问题,就不需要plyr
。nrow(Data[Data$Status=='Pass',])/nrow(Data)
。除非你想在ID
上拆分,ddply(Data,,(ID),summary,sum(Status='Pass')/length(Status)
@Justin:我希望找到一种不必硬编码值的方法,比如Status=='Pass'
。这就是为什么我试图用ddply
找到一些东西。是否可以用Status
而不是ID
来总结我不明白如何计算\passes/total
>没有“硬编码”这一事实。标准错误将你的stdErr函数替换为mean。
。但它们不一样,对吗?有趣的论点是将函数传递给tapply。如果你想使用stdErr函数:tapply(学生$Subject\u分数,学生$Status,FUN=stdErr)标准错误将stdErr函数替换为mean。
。但它们不一样,对吗?有趣的参数是将函数传递给tapply。如果要使用stdErr函数:tapply(学生$Subject\u 1\u分数,学生$Status,FUN=stdErr)