質問: R言語を用いて,プログラミングを行っているのですが条件式の書き方が分からず迷っています. 二次元カーネル密度推定を行った結果に閾値を設定したいため条件式を用いようと思ったのですが調べても出ず迷っています. プログラム内容は以下の通りです. x=scan("clipboard") y=scan("clipboard") plot(x,y,xlab="latitude",ylab="longitude") install.packages("MASS", repos="http://cran.ism.ac.jp/") library(MASS) d=kde2d(x,y,c(bandwidth.nrd(x),bandwidth.nrd(y)),n=80) a<-mean(d$z) aよりも値が大きいものだけを抽出したいのですが方法がわからないため教えていただきたいです.
回答: d[d > a] で良いかと思います。 R では ベクトルx > ベクトルy で「xの各成分がyの対応する成分よりも大きいか」という条件式になっており TRUE, FALSE, TRUE, TRUE, ... のようなものが格納されます。 つまり、「d[d > a]」で 「dの成分のうち、aの対応する成分よりも大きいもの」 を抽出することができます。