0

私はこのようなデータフレームを持っています

 M2 <- matrix(c(1,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0),nrow=7, 
  dimnames=list(LETTERS[1:7],NULL)) 

複数の列に基づいて行を選択したいと思います。たとえば、2 つの列のみに基づいて行を選択したい場合は、

 ans<-M2[which(M2[,1]==0 & M2[,2]==0)

しかし、3 列または 4 列、たとえば 1、3、4 番目の列、または 1, 2,3, 4 に基づいて値がゼロの行のみを選択したい場合は、どうすればよいですか?

4

3 に答える 3

4

rowSums を使用できます。

M2[rowSums(M2[,c(1,2,3,4)]) == 0,]

列 1、2、3、および 4 にゼロがあるすべての行が表示されます。

  [,1] [,2] [,3] [,4]
B    0    0    0    0
F    0    0    0    0
G    0    0    0    0

マトリックスに正と負の数値がある場合、これは機能しないことに注意してください。

于 2013-10-29T18:17:48.557 に答える
0

あなたの質問は私にはよくわかりませんが、これはあなたが探しているものですか?

列 1 から 4 の値に基づいて選択するには、次のようにします。

ans <- M2[M2[,1]==0 & M2[,2]==0 & M2[,3]==0 & M2[,4]==0,]

 #> ans
 #  [,1] [,2] [,3] [,4]
 #B    0    0    0    0
 #F    0    0    0    0
 #G    0    0    0    0

これにより、列 1 ~ 4 のすべてがゼロである M2 のサブセットが生成されます。

于 2013-10-29T18:16:57.933 に答える