Я пытаюсь применить одно и то же условие для нескольких столбцов массива, а затем создать новый столбец, если какой-либо из столбцов удовлетворяет условию.
Я могу сделать это вручную с помощью оператора OR, но мне было интересно, есть ли простой способ применить его для большего количества столбцов.
Пример:
data <- data.frame(V1=c("A","B"),V2=c("A","A","A","B","B","B"),V3=c("A","A","B","B","A","A"))
data[4] <- ifelse((data[1]=="A"|data[2]=="A"|data[3]=="A"),1,0)
Таким образом, 4-я строка является единственной, которая не удовлетворяет условию для всех столбцов:
V1 V2 V3 V1
1 A A A 1
2 B A A 1
3 A A B 1
4 B B B 0
5 A B A 1
6 B B A 1
Знаете ли вы, как применить условие в более коротком коде? Я пробовал что-то вроде
data[4] <- ifelse(any(data[,c(1:3)]=="A"),1,0)
, но он учитывает условие для всего набора данных, а не по строкам, поэтому всем строкам присваивается 1.