HOME > R

R

よく使う関数

一般的な関数

# 1行のコメントアウト
getwd() カレントディレクトリを表示.
setwd() カレントディレクトリの移動.
dir() カレントディレクトリの中身を表示.
library() パッケージの読み込み.

入力・出力

read.csv() csvファイルを読み込む.
write.csv() csvファイルに書き込む.
read.table() 指定した形式でファイルを読み込む.
write.table() 指定した形式でファイルに書き込む.

グラフィックス

dev.copy() 指定した形式で画像を保存.
jpeg() jpeg形式で画像を保存.
dev.off() 画像の書き込みを閉じる.

行列関係

matrix() 行列の作成.

ループ関係

for 指定回数のループ.
while 条件を満たす間はループ.

(Uploaded: 2011年08月04日, Last Updated: 2011年10月24日)  ページ上部へ移動

いろいろなTips

行列とデータフレームとの交換

data.frame(data)
data.matrix(data)

plotのオプション

x <- rnorm(100,0,1)
y <- rnorm(100,0,1)
plot(x, y, main="Title", xlab="xlabel", ylab="ylabel")

詳細はpar(par)で確認. lasでyを横向きに変更. pchでマーカーを変更.

plot(x, y, pch=3)

共分散行列の計算

x <- rnorm(100,0,1)
y <- rnorm(100,0,1)
var( cbind(x,y) )
cov( cbind(x,y) )

cbindで行列として認識させればvar()もしくはcov()で計算可能です.

(Uploaded: 2011年08月04日, Last Updated: 2011年08月04日)  ページ上部へ移動

回帰分析

回帰分析の例です.

set.seed(10)
x1 <- rnorm(100,0,1)
x2 <- runif(100,0,1)
b <- c(1,2,1)
y <- b[1] + b[2]*x1 + b[3]*x2 + rnorm(100,0,1)
data <- data.frame(y=y, x1=x1, x2=x2)
reg <- lm(y ~ x1 + x2, data=data)
summary(reg)

結果.

Call:
lm(formula = y ~ x1 + x2, data = data)

Residuals:
Min 1Q Median 3Q Max
-2.6802 -0.5540 0.1743 0.6399 2.4802

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.0445 0.2089 5.001 2.54e-06 ***
x1 1.9776 0.0969 20.408 < 2e-16 ***
x2 0.9362 0.3602 2.599 0.0108 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.9836 on 97 degrees of freedom
Multiple R-squared: 0.8125, Adjusted R-squared: 0.8086
F-statistic: 210.1 on 2 and 97 DF, p-value: < 2.2e-16

(Uploaded: 2012年05月27日, Last Updated: 2012年05月27日)  ページ上部へ移動

RとSpatial Weight Matrix

空間計量経済学において,まずSpatial Weight Matrix(SWM, 空間重み行列)を用意する必要があります.SWMの作成方法はいくつかありますが,最もシンプルなのが隣接(contiguity)行列から作成するSWMです.隣接行列は,境界を接すれば1,そうでなければ0の行列です.分析対象の観測数が多い場合には,この隣接行列を作成するのが困難になります.そこでRを使ってコンピュータに計算させます.

使用するパッケージはspdepです.

spdepでは,shapeファイルという形式の地図ファイルから位置関係を把握して隣接行列を作成します.ここでは3つの方法を紹介します.例として,Anselin (1988)のColumbusの犯罪率を分析したケースを扱います.

1.Contiguity

もし境界が共有していれば1,そうでなければ0の行列です.地図上では以下のように表せます.

Contiguity

2.k-nearest neighbor

最も近いk個の地域に対して1,そうでなければ0の行列です.地図上では以下のように表せます.k=3の例です.

k-nearest neighbor

3.Fixed distance

半径rkm内の地域に対して1,そうでなければ0の行列です.地図上では以下のように表せます.r=1kmの例です.注意として,shpファイルの空間情報を間違って読み込んでいる場合は距離が正しく測れません.

Fixed Distance

参考文献

  • Anselin, Luc (1988), Spatial Econometrics: Methos and Models, Dordrecht: Kluwer Academic Press.

地図ファイル

(Uploaded: 2011年08月04日, Last Updated: 2011年08月04日)  ページ上部へ移動

1変量のカーネル密度推定

1変量のカーネル密度推定をRで行うことができます.densityという関数があります.以下に例を載せておきます.

x <- rnorm(10000)
y <- density(x)

plot(y, ylab="Density", main="Kernel Density Estimation")

1変量のカーネル密度推定

(Uploaded: 2011年10月24日, Last Updated: 2011年10月24日)  ページ上部へ移動

2変量のカーネル密度推定

2変量のカーネル密度推定をRで行うことができます.MASSライブラリにkde2dという関数があります.ただし,kde2dでは共分散がゼロとして設定されてしまうようです.以下に例を載せておきます.

library(MASS)

x <- rnorm(10000)
y <- rnorm(10000)
z <- kde2d(x,y)

persp(z, theta=20, phi=20, expand=0.8, xlab="x", ylab="y", zlab="z", shade=0.1, ticktype="detailed")
contour(z, xlab="x", xlab="y")

2変量のカーネル密度推定 2変量のカーネル密度推定

(Uploaded: 2011年10月24日, Last Updated: 2011年10月24日)  ページ上部へ移動

(Uploaded: 2011年08月04日, Last Updated: 2011年08月04日)  ページ上部へ移動