我尝试对数组的多个列应用相同的条件,然后,如果任何列满足条件,则创建一个新列。
我可以使用 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)
因此,第四行是唯一不满足所有列条件的行:
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。