【发布时间】:2021-04-15 15:54:12
【问题描述】:
我正在尝试找出最有效的方法来制作 GPA 变量,它只是学生成绩的平均值。问题是有些学生没有上完四门课,所以我不能把这些加起来除以 4。
对于以下数据,1 = A、2 = B、3 = C、4 = D 或更低。任何 5 或更高的值都应该被丢弃或有效地算作 NA。另外,我首先要重新编码字母等级,以便 4 = A、3 = B、3 = C、1 = D 或更低(我只需要 mutate)。
我第一次尝试使用 pivot_longer,但我很难处理缺失/不相关的值,而且似乎效率很低。获得每个学生个人 GPA 的最佳方法是什么?
structure(list(ID = c(1, 2, 3, 4,
5, 6, 7, 8, 9, 10, 1,
12, 13, 14, 15), grade_eng = c(98, 3,
3, 2, 3, 1, 1, 3, 1, 2, 4, 1, 2, 1, 4), grade_math = c(5, 4,
3, 3, 3, 1, 1, 3, 1, 5, 4, 2, 3, 2, 4), grade_hist = c(3, 3,
4, 6, 2, 1, 2, 3, 1, 6, 2, 1, 1, 1, 4), grade_sci = c(3, 2, 4,
3, 6, 2, 1, 2, 1, 3, 5, 2, 97, 2, 4)), row.names = c(NA, -15L), class = c("tbl_df",
"tbl", "data.frame"))
【问题讨论】: