サンプルデータ
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