Я пытаюсь вычислить другой столбец в кадре данных на основе других столбцов и таблицы поиска. У меня есть простой пример, который показывает только несколько данных (мой реальный набор данных содержит миллионы строк).
У меня есть следующие наборы данных:
lookup<- data.frame("class"=c(1, 2, 1, 2), "type"=c("A", "B", "B", "A"),
"condition1"=c(50, 60, 55, 53), "condition2"=c(80, 85, 86, 83))
lookup
class type condition1 condition2
1 A 50 80
2 B 60 85
1 B 55 86
2 A 53 83
Мой фрейм данных имеет такую форму:
data<- data.frame("class"=c(1, 2, 2, 1, 2, 1),
"type"=c("A","B", "A", "A", "B", "B"),
"percentage_condition1"=c(0.3, 0.6, 0.1, 0.2, 0.4, 0.5),
"percentage_condition2"=c(0.7, 0.4, 0.9, 0.8, 0.6, 0.5))
data
class type percentage_condition1 percentage_condition2
1 A 0.3 0.7
2 B 0.6 0.4
2 A 0.1 0.9
1 A 0.2 0.8
2 B 0.4 0.6
1 B 0.5 0.5
Я хотел бы создать новый столбец в моем фрейме данных с именем data, который будет использовать таблицу поиска, такую как:
в моих данных, где мой класс совпадает с моими столбцами type , он может вычислять новый столбец в данных моего кадра данных, например (не реальный код):
d $ new <- поиск $ условие1 * данные $ процентное_условие1 + поиск $ условие2 * данные $ процентное_условие2 </p>
Я знаю, как сделать это с помощью оператора if else, но я пытаюсь сделать это более эффективно, так как работаю с большим количеством данных. Я знаю, что сделать это с одним столбцом в таблице поиска, но у меня не получается с несколькими столбцами (столбец класса и типа).
Спасибо за любую помощь и предложения!