示例数据
A<-c(1,4,5,6)
B<-c(4,6,7,8)
C<-c(6,9,1,2)
D<-c(5,6,7,3)
E<-c(10,11,12,19)
DF<-data.frame(A,B,C,D,E)
colnames(DF)<-c("A_1","B_1","C_2","D_2","TEST")
One<-1
Two<-2
我想使用 grep 根据最后一列中的条件删除(使 NA)我的数据。
DF[DF$TEST>15,grep(Two,colnames(DF))]<-NA
工作得很好
DF[DF$TEST>15,grep(Two|One,colnames(DF))]<-NA
才不是
以防万一数值数据略有不同
DF[DF$TEST>15,grep(2,colnames(DF))]<-NA
这工作正常
DF[DF$TEST>15,grep(2|1,colnames(DF))]<-NA
这不
理想情况下,我希望能够使用 grep 基于几个自定义变量删除数据:
grep(One|Two|Three|Four)
或者如果处理数字
grep(1:4)
而且我不确定是否可以在正则表达式中添加加法,但最终如果我能做到这一点将是最简单的:
DF[DF$TEST>15,grep(One+1,colnames(DF))]<-NA #If I were trying to grep on 2
或者
DF[DF$TEST>15,grep(One+1:One,colnames(DF))]<-NA #If I were trying to grep on 1:2