Rでの「if」と「for」の使い方を学ぼうとしています。簡単な例として、データフレームを設定します。
V1<-c(3,2,2,4,5)
V2<-c(3,7,3,5,2)
V3<-c(5,2,5,7,5)
V4<-c(1,1,2,3,4)
V5<-c(1,2,6,7,5)
DF2<-data.frame(V1=V1,V2=V2,V3=V3,V4=V4,V5=V5)
DF2
V1 V2 V3 V4 V5
1 3 3 5 1 1
2 2 7 2 1 2
3 2 3 5 2 6
4 4 5 7 3 7
5 5 2 5 4 5
私の目標は、行の値に基づいて行の列を削除するifステートメントを設定することでした。例として:
If V1 = 5, drop column V5
If V1 = 4, drop column V4 & V5
したがって、これらのルールによれば、私のデータフレームは次のようになります。
V1 V2 V3 V4 V5
1 3 3 5 1 1
2 2 7 2 1 2
3 2 3 5 2 6
4 4 5 7
5 5 2 5 4
私の最初の考えは、これを行うための簡単なifステートメントを書くことができるということでした。
if(DF2$V1==5){
DF2[-5]
}else if(DF2$V1==4){
DF2[-4:5]
}
しかし、「if」条件ステートメントを1より大きくすることはできないというエラーが発生しました。したがって、「for」ループを作成すると、ifステートメントが行ごとに移動し、条件付きステートメントが==1になると思いました。
for(i in 1:length(DF2)){
if(DF2$V1==5){
DF2[-5]
}else if(DF2$V1==4){
DF2[-4]
}
}
しかし、今は同じエラーが発生します。x10だけです。だから私は明らかに同じ木を吠えています。だから私の質問は-私の元のデータフレームの質問に対処するための最良の方法は何ですか?そして、ある種のifまたはforループの答えがない場合、なぜこのエラーが発生するのですか?