「R」カテゴリーアーカイブ

ある変数が特定の値を取るオブザベーションの削除

実験や調査のデータを心理学徒がいじっていて、よく遭遇するのがこの場面。「年収を不明と回答している者を除いて分析してみたい」みたいな状況。以下のように新たにデータフレームを作り直してしまおう。なお、dplyrのfilterでも同様のことができるようだが、Rの標準機能だけでやれる方法を紹介。

d02<-d01[d01$INCOME!=10,]

d01というデータフレームに収められているINCOMEという変数に年収区分の回答結果が入っているが、これが「10」の者は「不明」なので、これを除くということ。「!=」はnot equal (Cと同じ)。除いたデータフレームがd02なので、年収不明の回答者を除いた分析をしたい場合はd02データフレームに対して行えばよい。
新年あけましておめでとうございます。日本に帰りたい。

Rのplotで軸上に点を重ねる方法

散布図をRで作成する場合は、たいてい

x<-c(0,10,20,30,40,50,60,70,80,90,100)
y<-c(10,30,45,51,63,72,88,90,100,130,140)plot(x,y,xlim=c(0,100), ylim=c(0,150))
plot(x,y,xlim=c(0,100), ylim=c(0,150))

というようなプログラムを書く。実行すると以下のような散布図が出力される。
rplot01
でも、論文によっては「原点で交差するように」という指示があるかもしれない。そこでこんなことをしてみよう。

par(xaxs="i",yaxs="i")
plot(x,y,xlim=c(0,100), ylim=c(0,150))

rplot02
あれ、○がちょんぎれちゃった! Excelのように、○を軸の上に重ねなさい、という指示をされた場合にはどうするか?

par(xaxs="i",yaxs="i",xpd=T)
plot(x,y,xlim=c(0,100), ylim=c(0,150))

これでいける。IMOさんありがとうございました。
rplot03