【发布时间】:2020-06-19 16:27:51
【问题描述】:
我正在尝试对数组的多个列应用相同的条件,然后,如果任何列满足条件,则创建一个新列。
我可以使用 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。
【问题讨论】:
标签: r if-statement conditional-statements multiple-columns