Я действительно изо всех сил пытался сформулировать свой вопрос, так что на самом деле это может быть проблема, отличная от того, что предлагает название!У меня есть датафрейм с 6 факторами.Имена переменных:
var_1_1
var_1_2
var_2_1
var_2_2
var_3_1
var_3_2
Для всех переменных, заканчивающихся на 1, уровнями являются «Да», «Нет» и «Не знаю».Все переменные, оканчивающиеся на два, имеют два уровня - «Да» и «Нет».
Там, где совпадают первые 5 символов имен переменных, я хочу создать новую переменную, которая объединит «Да» и «Нет».Уровни двух полусогласованных переменных.Таким образом, в итоге я получу в общей сложности 9 переменных, например:
var_1_1
var_1_2
var_1_3
var_2_1
var_2_2
var_2_3
var_3_1
var_3_2
var_3_3
Моей первой мыслью было сделать 3 оператора ifelse для получения новых переменных, но я пытаюсь уменьшить количество повторений в своем коде.Я думаю, что это можно сделать с помощью цикла for или apply, но я очень запутался, пытаясь это сделать.Будем очень благодарны за любые предложения!
Вот как я изначально собирался это сделать, но подумал, что, возможно, есть способ сделать это менее повторяющимся ...
df$var_1_3 <- ifelse(df$var_1_1=="Yes" | df$var_1_2=="Yes","Yes","No")
df$var_1_3 <- as.factor(df$var_1_3)