Начинающий здесь.
Я пытаюсь написать цикл для корректировки счета.
Первая часть цикла for создает условный вывод, который должен быть передан второй части цикла for с функцией поиска.
В первом data.frame, a, есть 2 столбца
- оценка (оценка участника)
- проблема (проблемы с оценкой участника)
Во втором блоке данных. B, 5 столбцов
- оценка (оценка участника)
- q (скорректированная оценка при проблеме = 1)
- r (скорректированная оценка при проблеме = 2)
- с (скорректированная оценка при проблеме = 0)
- t (скорректированная оценка при проблеме> 2)
В первом цикле for я нахожу индекс где
a $ оценка = b $ оценка
Затем во втором цикле я передаю индекс в другой цикл.
Основываясь на значении в $ задачи, цикл возвращает правильное значение в (q, r, s, t).
Вот data.frame a
id score problem
1 11 1
2 12 6
3 13 2
4 14 0
5 NA NA
Вот data.frame b
score q r s t
11 12 13 11 NA
12 14 15 12 NA
13 16 20 13 NA
14 18 22 14 NA
NA NA NA NA NA
Я бы хотел, чтобы вывод функции был новым столбцом в a, с поправкой на $
Вот функция, которую я пробовал,
adjust <- function (y, z){
# y = problem
# z = score
for(j in z){
index <- sapply(j, function(x) b$score %in% x)
for (i in y){
ifelse(i > 2,
z(i) <- b[index, 5],
ifelse(i == 2,
z(i) <- b[index, 3],
ifelse(i == 1,
z(i) <- b[index, 2],
ifelse( i == 0,
z(i) <- b[index, 4],
z(i) <- b[index, 5]))))
print(z(i))
}
}
}
Это все еще ново для меня.
Не уверен, где я иду не так.
Когда я назначаю:
a$adjusted <- adjust(a$problem, a$score)
Ничего не происходит
Любая и вся помощь очень ценится здесь.