Вероятно, есть очевидный и элегантный способ сделать это, вероятно, с помощью lapply, но я все еще осваиваю команды применения и изо всех сил пытаюсь его найти.
У меня есть кадр данных, который выглядит следующим образом, за исключением того, что вместо 5 факторных переменных есть десятки, а вместо 10 строк - сотни.
a<- data.frame("id" = c(1:10),
"a1" = factor(c(0,0,1,1,0,1,0,1,0,1)),
"a2" = factor(c(0,0,0,0,0,0,0,0,1,0)),
"a3" = factor(c(0,0,0,0,0,1,0,0,0,0)),
"a4" = factor(c(0,0,0,0,0,0,0,0,1,1)),
"a5" = factor(c(0,0,0,1,0,0,0,0,0,0)))
Я хочу создать новую переменную, которая равна 1, если какой-либо из 13 столбцов содержит определенный уровень фактора. Эквивалентом в примере кадра данных будет создание новой переменной с именем «b», равной 1, если в любом из столбцов a1: a4 есть «1», что будет выглядеть следующим образом.
a<- data.frame("id" = c(1:10),
"a1" = factor(c(0,0,1,1,0,1,0,1,0,1)),
"a2" = factor(c(0,0,0,0,0,0,0,0,1,0)),
"a3" = factor(c(0,0,0,0,0,1,0,0,0,0)),
"a4" = factor(c(0,0,0,0,0,0,0,0,1,1)),
"a5" = factor(c(0,0,0,1,0,0,0,0,0,0)),
"b" = c(0,0,1,1,0,1,0,1,1,1))
Должен быть способ сделать это, используя 13 позиций столбцов вместо написания условного оператора ifthen для каждой из 13 переменных.