列が1つしかないデータフレームをフィルタリングしようとしています。これにより、次のようにベクトルが返されます。
single.c <- data.frame(col1=c(1,2,3,4,5), row.names=C("r1","r2","r3","r4","r5"))
single.c[single.c$col1 > 2,]
[1] 3 4 5
私が実際に必要としているのは、複数列のデータフレームの場合と同じように返されるデータです。
multi.c <- data.frame(col1=c(1,2,3,4,5), col2=c(1,2,3,4,5), row.names=c("r1","r2","r3","r4","r5"))
multi.c[multi.c$col2 > 2,]
col1 col2
r3 3 3
r4 4 4
r5 5 5
他の列がない場合にベクトルを返すことは理にかなっていることがわかりますが、一般的には、どの行がその結果を与えているかを確認したいと思います。なぜこれが発生するのでしょうか。また、行名を含め、結果のデータフレームの形状を維持する簡単な方法はありますか?