R 测试多个数字列以生成新列

R 测试多个数字列以生成新列,r,conditional-statements,numeric,logical-operators,R,Conditional Statements,Numeric,Logical Operators,我想创建一个新的数值列,它根据多个数值列的阈值分配值 Data<-data.frame(A=rnorm(100), B=rnorm(100), C=rnorm(100), D=rnorm(100), E=rnorm(100)) Data2 | abs(数据$B)>2 | abs(数据$C)>2)]您希望: Data$Flag <- ifelse((abs(Data$A)>2 | abs(Data$B)>2 | abs(Data$C)>2), 5, NA) 数据$

我想创建一个新的数值列,它根据多个数值列的阈值分配值

Data<-data.frame(A=rnorm(100), B=rnorm(100), C=rnorm(100), D=rnorm(100), E=rnorm(100))
Data2 | abs(数据$B)>2 | abs(数据$C)>2)]您希望:

Data$Flag <- ifelse((abs(Data$A)>2 | abs(Data$B)>2 | abs(Data$C)>2), 5, NA)
数据$Flag 2 | abs(数据$B)>2 | abs(数据$C)>2),5,NA)
NA
替换为不超过2时的可选值。

您希望:

Data$Flag <- ifelse((abs(Data$A)>2 | abs(Data$B)>2 | abs(Data$C)>2), 5, NA)
数据$Flag 2 | abs(数据$B)>2 | abs(数据$C)>2),5,NA)
NA
替换为不超过2时的可选值。

您希望:

Data$Flag <- ifelse((abs(Data$A)>2 | abs(Data$B)>2 | abs(Data$C)>2), 5, NA)
数据$Flag 2 | abs(数据$B)>2 | abs(数据$C)>2),5,NA)
NA
替换为不超过2时的可选值。

您希望:

Data$Flag <- ifelse((abs(Data$A)>2 | abs(Data$B)>2 | abs(Data$C)>2), 5, NA)
数据$Flag 2 | abs(数据$B)>2 | abs(数据$C)>2),5,NA)
当NA不超过2时,用替代值替换NA。

您也可以使用:

Data$Flag1 <- NA^(!rowSums(abs(Data[,c('A', 'B', 'C')]) >2)) +4
identical(Data$Flag, Data$Flag1) #Comparing the results from @Robert Krzyzanowski
#[1] TRUE
Data$Flag1(2))+4
相同(数据$Flag,数据$Flag1)#比较@Robert Krzyzanowski的结果
#[1] 真的
您还可以使用:

Data$Flag1 <- NA^(!rowSums(abs(Data[,c('A', 'B', 'C')]) >2)) +4
identical(Data$Flag, Data$Flag1) #Comparing the results from @Robert Krzyzanowski
#[1] TRUE
Data$Flag1(2))+4
相同(数据$Flag,数据$Flag1)#比较@Robert Krzyzanowski的结果
#[1] 真的
您还可以使用:

Data$Flag1 <- NA^(!rowSums(abs(Data[,c('A', 'B', 'C')]) >2)) +4
identical(Data$Flag, Data$Flag1) #Comparing the results from @Robert Krzyzanowski
#[1] TRUE
Data$Flag1(2))+4
相同(数据$Flag,数据$Flag1)#比较@Robert Krzyzanowski的结果
#[1] 真的
您还可以使用:

Data$Flag1 <- NA^(!rowSums(abs(Data[,c('A', 'B', 'C')]) >2)) +4
identical(Data$Flag, Data$Flag1) #Comparing the results from @Robert Krzyzanowski
#[1] TRUE
Data$Flag1(2))+4
相同(数据$Flag,数据$Flag1)#比较@Robert Krzyzanowski的结果
#[1] 真的
另一种选择:

Data$Flag[rowSums(abs(Data[c("A","B","C")]) > 2) > 0] <- 5
Data$Flag[rowSums(abs(Data[c(“A”、“B”、“c”)])>2)>0]另一种选择:

Data$Flag[rowSums(abs(Data[c("A","B","C")]) > 2) > 0] <- 5
Data$Flag[rowSums(abs(Data[c(“A”、“B”、“c”)])>2)>0]另一种选择:

Data$Flag[rowSums(abs(Data[c("A","B","C")]) > 2) > 0] <- 5
Data$Flag[rowSums(abs(Data[c(“A”、“B”、“c”)])>2)>0]另一种选择:

Data$Flag[rowSums(abs(Data[c("A","B","C")]) > 2) > 0] <- 5
Data$Flag[rowSums(abs(数据[c(“A”、“B”、“c”)])>2)>0]