0

我想开发一个功能来自动化成绩分析的过程。

在一栏中,有一个学生的辅导小时数,在下一栏中是他或她的成绩。

对于三个组,我必须计算 As(A+s 和 As)、Bs(B+s 和 As)、Cs、Ds、Fs、Ws 的数量并计算每个组的 GPA。这些组是那些有 6 小时或更多小时的人,那些没有时间的人,以及那些有辅导的总人数。

是否可以在 R 中创建一个简单的函数,例如Grades(Hours,Mark),类似于Summary()函数,它将打印三个类别,每个类别具有以下信息:

  1. A、B、C、D、F、W任意类型(As包括As、As、A+s等)的学生人数
  2. 计算 GPA:(4*A+3*B+2*C+1*D+0*F+0*W)/(A + B+ C + D+ F - W)

这甚至可以在R中做到吗?我从哪里开始?

谢谢。

4

1 回答 1

0
> Hours=c(0,5,6,10,0);Grades=c("F","A-","A","A+","C-") 
> grpHrs <- Hours >= 6
> table( substr(Grades, 1,1), grpHrs)
   grpHrs
    FALSE TRUE
  A     1    2
  C     1    0
  F     1    0

很难知道需要什么样的 GPA 计算,因为很明显这些是不同的学生。如果这些都来自同一个学生,那么:

grdABCDFW <- substr(Grades,1,1)



sum( 4* (grdABCDFW=="A")+
     3*(grdABCDFW=="B")+
     2*(grdABCDFW=="C")+ 
     1*(grdABCDFW=="D")+ 
     0*(grdABCDFW=="F")+ 0*(grdABCDFW=="W") )/
                 length(Grades[ !is.na(Grades)] )
#[1] 2.8

对你的评论。也许:

Hours.time=function(Hours, Grades, cutpt){  
                 grpHrs <- Hours >= cutpt
                 tbl <- table( substr(Grades,1,1), grpHrs)
                 colnames(tbl) <- c(  paste("Fewer than ", cutpt),
                                     paste( cutpt, "or more") )
                  tbl }
 Hours.time(Hours, Grades,6)
 #-------
   grpHrs
    Fewer than  6 6 or more
  A             1         2
  C             1         0
  F             1         0
于 2013-02-14T23:46:09.790 回答