У меня есть следующий фрейм данных (дБ):
STUDENT_ID / DESCRIPTION / TERM / ACH / MID / FINAL
STUDENT_ID - это номер студента
DESCRIPTION - этоназвание предмета
TERM - это термин, когда студент изучал предмет
ACH - это отметка достижений по этому предмету
MID - это отметка среднего уровня по этому предмету
ФИНАЛ - это отметка финала в этой теме
Я хочу создать новый фрейм данных с новой структурой следующим образом
Создан пустой фрейм данных (d)
Итак, я хочу заполнить (d) данными из (дБ)
student_no = STUDENT_NO
term = TERM
ach_m = ACH (гдеОПИСАНИЕ = МАТЕМАТИКА)
mid_m = MID (где ОПИСАНИЕ = МАТЕМАТИКА)
final_m = FINAL (где ОПИСАНИЕ = МАТЕМАТИКА)
и так далее для каждого предмета .... в то время как каждая строка для предмета в другом термине в (дБ), в (д)
будет толькоодна строка за семестр, заполненная всеми отметками предметов.
Таким образом, в общей сложности 6 записей на одного учащегося, когда студент изучал 6 терминов.
Это код, который я пробовал. Требуется слишком долгое время, чтобы извиниться, и результат копирует аналогичные значения столбца в 10 тысяч или более строк, но хорошо, что он находится в правильных столбцах (student_id, term) и, возможно, начинает заполнять один предмет, например ((ach_m,mid_m, final_m)):
for (i in seq(1, nrow(db),1)) {
for (j in seq(1, nrow(d),1)) {
if (str_detect(db[i,2] , "Arabic ") == TRUE) {
d[j,1] <- db[i,1]
d[j,2] <- db[i,3]
d[j,15] <- db[i,4]
d[j,16] <- db[i,5]
d[j,17] <- db[i,6]
}
if (str_detect(db[i,2], "English ") == TRUE) {
d[j,1] <- db[i,1]
d[j,2] <- db[i,3]
d[j,18] <- db[i,4]
d[j,19] <- db[i,5]
d[j,20] <- db[i,6]
}
if (str_detect(db[i,2], "Physics ") == TRUE) {
d[j,1] <- db[i,1]
d[j,2] <- db[i,3]
d[j,12] <- db[i,4]
d[j,13] <- db[i,5]
d[j,14] <- db[i,6]
}
if (str_detect(db[i,2], "Chemistry ") == TRUE) {
d[j,1] <- db[i,1]
d[j,2] <- db[i,3]
d[j,6] <- db[i,4]
d[j,7] <- db[i,5]
d[j,8] <- db[i,6]
}
if (str_detect(db[i,2], "Biology ") == TRUE) {
d[j,1] <- db[i,1]
d[j,2] <- db[i,3]
d[j,9] <- db[i,4]
d[j,10] <- db[i,5]
d[j,11] <- db[i,6]
}
if (str_detect(db[i,2], "Mathmatics.* ") == TRUE) {
d[j,1] <- db[i,1]
d[j,2] <- db[i,3]
d[j,3] <- db[i,4]
d[j,4] <- db[i,5]
d[j,5] <- db[i,6]
}
}
}