Я пытаюсь объединить данные из нескольких источников.
В приведенном ниже примере я хотел бы создать новый фрейм данных с именем RESULT
. Мне нужно заменить значения из ячеек dt2
значениями SCORE
в dt1
на основе переменных ID
и TASK
.
dt1 <- read.table(text = "
ID TASK SCORE
1 task1 0
1 task2 0
2 task1 1
2 task2 0
3 task1 1
3 task2 0
4 task1 0
4 task2 1
5 task1 1
5 task2 0
6 task1 0
6 task2 1
", header = TRUE, stringsAsFactors = FALSE)
dt2 <- read.table(text = "
ID THING1 THING2 THING3 THING4
1 NA task2 NA task1
2 NA NA NA NA
3 task1 NA task2 NA
4 NA task1 NA task2
5 task2 NA task1 NA
6 NA task1 task2 NA
", header = TRUE, stringsAsFactors = FALSE)
RESULT <- read.table(text = "
ID THING1 THING2 THING3 THING4
1 NA 0 NA 0
2 NA NA NA NA
3 1 NA 0 NA
4 NA 0 NA 1
5 0 NA 1 NA
6 NA 0 1 NA
", header = TRUE, stringsAsFactors = FALSE)
Например, в dt1
, мы видим, что ID = 1
получил оценку 0
на task1
. Из dt2
мы можем видеть, что ID = 1
сделал THING4
для своего первого TASK
. Как показано в кадре данных RESULT
, ID = 1
теперь имеет значение 0
для THING2
.
Я не совсем уверен, с чего начать. Я прочитал несколько тем, но ни одна из них (которые я могу найти) не решает эту точную проблему (например, здесь и здесь ), и я не совсем уверен, как изменить эти примеры, чтобы получить результат, который мне нужен, потому что этот вид программирования является очень новым для меня. Так что я буду очень признателен за любые предложения!