【发布时间】:2014-05-07 23:42:48
【问题描述】:
我正在计算一门课程的最终平均成绩。大约有 500 名学生,成绩被组织到一个.csv 文件中。列标题包括:
Name, HW1, ..., HW10, Quiz1, ..., Quiz5, Exam1, Exam2, Final
每个的权重都不同,这不应该是编程问题。但是,每个学生的最低 2 HW 和最低测验将被丢弃。我怎么能在 r 中编程呢?请注意,每个学生放弃的硬件/测验可能不同(即学生 A 放弃了 HW2、HW5、Quiz2,学生 B 放弃了 HW4、HW8、Quiz1)。
【问题讨论】:
-
尝试创建small reproducible example,展示您尝试过的内容以及遇到的问题。
-
一般策略是使用
reshape::melt以“整洁”格式获取数据(每个学生和作业一行),然后使用dplyr删除最低值并执行任何操作您需要的其他权重/平均值。dplyr有很好的文档。 -
感谢您对 dplyr 的提示。我会调查一下(我有 Excel 中的数据,所以我认为它的格式已经很整洁了)。
-
我现在正在研究 dplyr 解决方案。它往往比 do.call 更直观(也更快)
-
@KirkFogg 从 dplyr 的作者那里阅读了一些关于“整洁数据”的文章:vita.had.co.nz/papers/tidy-data.pdf,这是思考数据结构的好方法。跨度>
标签: r