2

私は現在、2つの異なるデータフレームに取り組んでいます。そのうちの1つは非常に長いです(long)。私がする必要があるのはlong、対応する行がid_type他の(小さい)データセットに少なくとも1回現れるすべての行を選択することです。

2つのデータフレームが次のとおりであるとします。

long <- read.table(text = "
  id_type   x1   x2

   1       0     0  
   1       0     1
   1       1     0
   1       1     1
   2       0     0
   2       0     1
   2       1     0
   2       1     1
   3       0     0  
   3       0     1
   3       1     0
   3       1     1
   4       0     0  
   4       0     1
   4       1     0
   4       1     1", 
header=TRUE) 

short <- read.table(text = "
  id_type   y1   y2    

   1       5     6    
   1       5     5    
   2       7     9", 
     header=TRUE) 

実際には、私が取得しようとしているのは次のとおりです。

 id_type   x1   x2    

  1       0     0  
  1       0     1
  1       1     0
  1       1     1
  2       0     0  
  2       0     1
  2       1     0
  2       1     1

使ってみましたout <- long[long[,"id_type"]==short[,"id_type"], ]が、明らかに間違っています。どのように進めますか?ありがとう

4

2 に答える 2

2

使用するだけ%in%です:

out <- long[long$id_type %in% short$id_type, ]

を見てください?"%in%"

于 2013-01-21T12:27:32.107 に答える
2

あなたが行方不明%in%

> long[long$id_type %in% unique(short$id_type),]
  id_type x1 x2
1       1  0  0                                                             
2       1  0  1                                                             
3       1  1  0                                                             
4       1  1  1                                                             
5       2  0  0                                                             
6       2  0  1                                                             
7       2  1  0                                                             
8       2  1  1  
于 2013-01-21T12:28:03.510 に答える