1

私は data.frame を持っています:

df1<-data.frame("Sp1"=1:6,"Sp2"=7:12,"Sp3"=13:18)
rownames(df1)=c("A","B","C","D","E","F")

df1

  Sp1 Sp2 Sp3
A   1   7  13
B   2   8  14
C   3   9  15
D   4  10  16
E   5  11  17
F   6  12  18

df1カットオフ値でフィルタリングしてrowSums(df1)、ダウンストリーム分析に含めたいサイト (行名) を返します。

include<-rownames(df1[rowSums(df1)>=22,])
include

[1] "B" "C" "D" "E" "F"

私は2番目の data.frame を持っています:

df2<-data.frame(site.x=c("A","B","C"), site.y=c("D","E","F"),score=1:3)

  site.x site.y score
1      A      D     1
2      B      E     2
3      C      F     3

df2$site.x「include」にリストされているサイトとdf2$site.y正確に等しい行のみが含まれるようにdf2をフィルタリングしたい、つまり「A」を含む行を除外して返す。

  site.x site.y score    
2      B      E     2
3      C      F     3

私が試してみました :

filter<-df2$site.x == include & df2$site.y == include   

filtered<-df2[filter,]

アドバイスをありがとう!

答え

で使用%

filter<-df2$site.x %in% include & df2$site.y =%in% include  

filtered<-df2[filter,]
filtered

   site.x site.y score
 2      B      E     2
 3      C      F     3
4

1 に答える 1

1

私にとっては、次のように動作します:

filter<-df2$site.x %in% include & df2$site.y %in% include
df2[filter,]

実際、質問の最後の 2 行にdf1代わりに入れています。df2

于 2012-07-24T12:34:35.800 に答える