01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
使い方
単語を繋げる時は「+」で繋ぐ
例:in+relation
単語の間に別の単語がある場合も入れる
例:has+been+3recognized
例:from+3to
単語の活用を含める
例:show@
例:wide@
ワイルドカード「*」
例:wide*
単語のどれか「|」
例:relation|relationship
品詞を指定(単語の後ろに「/NOUN」というふうに)
例:form/NOUN
NOUN: a macro tag: stands for any noun tag
VERB: a macro tag: stands for any verb tag
NN: common noun
NNS: noun plural
JJ: adjective
DT: definite and indefinite article
IN: preposition
RB: adverb
VB: base-form verb
VBN: past participle verb
VBG: -ing form verb
VBD: past tense verb
CC: coordinating conjunction (e.g. "and" or "but")
CS: subordinating conjunction (e.g. "while", "because")
PPS: personal pronoun subject case (e.g. "she", "I")
PPO: personal pronoun object case (e.g. "her", "me")
PPP: possessive pronoun (e.g. "hers", "mine")
DTG: determiner-pronoun ("many", "all", "both", "some" etc.)
## レズリー行列を作る関数
make.reslie <- function(recruit, survive){ # (recruit:齢別出生数 survive:齢別期間生存率)
i <- length(recruit)
reslie <- matrix(0, nrow=i, ncol=i) # 0行列
reslie[1,] <- recruit # 齢別出生数
for(j in 1:(i-1)){ # 齢別期間生存率
reslie[j+1, j] <- survive[j]
}
reslie
}
## レズリー行列と初期値から個体群の動態を計算する
pop.dynamic <- function(reslie, initial, n=20){ # reslie:レズリー行列 initial:初期値 n:世代数
i <- ncol(reslie)
pop.dyn <- initial # 1世代目
pop <- reslie %*% initial # 2世代目
pop.dyn <- cbind(pop.dyn, pop)
for(j in 3:n){
pop <- reslie %*% pop # 3世代目以降
pop.dyn <- cbind(pop.dyn, pop)
}
pop.dyn
}
## 個体群の動態を散布図にする
plot.dynamic <- function(dy){
n <- ncol(dy) # 世代数
m <- nrow(dy) # 齢数
plot(dy[1,], type="b", log="y", ylim=c(min(dy),max(dy[1,]))) # 最小齢の動態の散布図
for(i in 2:m){ # 各齢の動態の散布図
par(new=T)
plot(dy[i,], type="b", log="y", ylim=c(min(dy),max(dy[1,])))
}
}
## レズリー行列と初期値から平衡に達するまでの動態を計算する
pop.equil <- function(reslie, initial, n=5){ # reslie:レズリー行列 initial:初期値 n:平衡後の世代数
i <- ncol(reslie)
pop.dyn <- initial # 1世代目
pop <- reslie %*% initial # 2世代目
pop.dyn <- cbind(pop.dyn, pop)
j <- 2 # 第2世代から開始
ratio.befor <- round(pop.dyn[,j-1] / sum(pop.dyn[,j-1]), 5) # 第1世代の頻度分布
ratio.after <- round(pop.dyn[,j] / sum(pop.dyn[,j]), 5) # 第2に世代の頻度分布
while(sum(ratio.befor!=ratio.after)>0){
pop <- reslie %*% pop # 3世代目以降
pop.dyn <- cbind(pop.dyn, pop)
ratio.befor <- round(pop.dyn[,j] / sum(pop.dyn[,j]), 5)
ratio.after <- round(pop.dyn[,j+1] / sum(pop.dyn[,j+1]), 5)
j <- j + 1 # 次の世代へ
}
for(k in 1:n){ # 平衡後n世代を計算
pop <- reslie %*% pop # 3世代目以降
pop.dyn <- cbind(pop.dyn, pop)
}
list(dynamics=pop.dyn, ramda = sum(pop.dyn[,j+n])/sum(pop.dyn[,j+n-1]))
}
## 基礎情報の設定
recruit <- c(0, 2, 3, 4, 1) # 齢別出生数
survive <- c(0.4, 0.7, 0.7, 0.7, 0) # 齢別期間生存率
initial <- c(10, 2, 2, 2, 2) # 初期値
initial2 <- c(1, 5, 1, 1, 1) # 初期値
## 計算・作図
reslie <- make.reslie(recruit, survive) # レズリー行列
dy <- pop.dynamic(reslie, initial, 15) # 個体群動態を計算
par(mfrow=c(1,3))
plot.dynamic(dy) # 個体群の動態から散布図を作図
dy2 <- pop.dynamic(reslie, initial2, 15)
plot.dynamic(dy2)
dy3 <- pop.equil(reslie, initial, n=10) # 平衡に達するまでを計算
plot.dynamic(dy3$dyn)
dy3 # 平衡に達するまでの動態と固有値(λ)
pdf("d:/tmp.pdf")
layout.show()
par(omi=c(1,1,0.5,0.5)) # 全体の余白を下左上右の順で指定
layout.show()
lay <- layout(matrix(c(1,2), nrow=2)) # 縦2横1に画面分割
layout.show(lay)
par(mai=c(0.1, 0.1, 0.1, 0.1)) # 個々の余白を下左上右の順で指定
plot(sin, -pi, 2 * pi)
par(mai=c(0.5, 0.5, 0.5, 0.5)) # 個々の余白を下左上右の順で指定
plot(cos, -pi, 2 * pi)
dev.off()
## 行列資料で行ごとの数値をヒストグラム(もどき)で表示する
mat.hist <- function(mat, omi=rep(0.5, 4), mai=rep(0, 4), ratio=NA, ...){ # 行列と余白の設定
if(is.na(ratio)) ratio <- sapply(as.data.frame(t(mat)), max) # 各行の最大値(グラフの割合)
n <- nrow(mat) # 列数
layout(matrix(1:n, nrow=n), heights=ratio, TRUE) # 作図画面を分割
par(omi=omi) # 全体の余白
par(mai=mai) # 個々の余白
for(i in 1:n){ #
barplot(mat[i,], axes=FALSE, space=0, ...) # ヒストグラム(みたいなもの)
axis(side=2, ...) # 個々のグラフのy軸
}
axis(side=1) # 全体のx軸
}
# 使用例
m <- matrix(abs(rnorm(100)), ncol=20) # 乱数を発生
mat.hist(m) # 図示
library(spatstat) # ライブラリの呼び出し
data(cells) # データの呼び出し
# 密度分布図
par(mfrow=c(2,2)) # 2*2に分割
for(i in seq(from=0.07, to=0.08, by=0.01)){
Z <- density.ppp(cells, i) # 密度の推定
plot(Z, main = "Kernel smoothed intensity") # 密度分布
plot(cells, add = TRUE) # 散布図を追加
}
# 距離分布
Z <- distmap(cells, dimyx = 512)
plot(cells$window, main = "Distance map")
plot(Z, add = TRUE)
points(cells)
# 最も近い点を探す
plot(cells) # 散布図
m <- nnwhich(cells) # 最も近い点を探す
b <- cells[m] # 最も近い点との対応を作る
arrows(cells$x, cells$y, b$x, b$y, angle = 12, length = 0.1, col = "red") # 矢印で表示
# 透視図
persp(Z, colmap=terrain.colors(128), shade=0.3, phi=45, theta=30, main="perspective plot")
# 各種解析の要約表示
plot(allstats(cells)) # for unmarked point pattern
# その他使えそうな関数の一覧
library(spatstat) # ライブラリの呼び出し
unmark # 指標を取り除く
setmarks # 指標を付ける
%mark% # 指標を付ける
cut # 指標の操作
split # 指標の操作
cut.ppp # 数値の指標を因子(factor)の指標に変換
split.ppp # 指標の因子ごとに分割
superimpose # 点過程を統合
nndist # nearest neighbour distance
pairdist # distance between each pair of points
Gcross # Multitype Nearest Neighbour Distance Function (i-to-j)
Gdot # Multitype Nearest Neighbour Distance Function (i-to-any)
Gest # Nearest Neighbour Distance Function G
Gmulti # Marked Nearest Neighbour Distance Function
Jcross # Multitype J Function(i-to-j)
Jdot # Multitype J Function(i-to-any)
Jest # Estimatethe J-function
Jmulti # Marked J Function
Kcross # Multitype K Function (Cross-type)
Kdot # Multitype K Function (i-to-any)
kest # K-function
Kmulti # Marked K-Function
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
最終更新時間: 2009-12-01 22:42