ちなみに優占 8 植物種の Line 間ちらばりはかくのごとし.
ブタナ (Hypochaeris) みたいに A-E Line に存在しない場合には,
Line ごとデータからぬかれているわけだが
……
> sapply(v.target.spc, function(s) { d <- dall[dall$spc == s,]; tapply(d$Freq, d$line, sum) })
$Rhynchospora
A B D E G H
183 20 298 268 104 13
$Hypochaeris
G H
74 444
$Drosera
A B D E G H
3 9 160 33 123 44
$Solidago
A B D E G H
3 6 63 4 230 44
$Moliniopsis
A B D E G H
97 81 31 39 56 2
$Lobelia
A B D E G H
6 1 15 3 134 14
$Eriophorum
A B D E G H
40 9 9 19 14 32
$Carex
A B D E G H
34 15 10 9 27 17
まあ,
「1 Line だけ集中」
という Lobelia は変わりものなのかもしれない.
しかも,
特定の stage に偏っているし,
> tapply(dL$Freq, dL$stage, sum)
f j s
8 153 12
ということで,
とりあえず 個体数 5 未満の Line は計算に含めないよう改造して,
また再計算発令
……
また 13 分でコケたので,
条件をキビしく個体数 10 未満は捨て,
としてみる
……
これでもダメか
……
ならば Line G だけ,
ならば?
……
うーむ,
これもダメ.
歳末急患的 R こんさる.
vector の中である条件をみたす値だけを別の vector の値で置き換えたい,
すなわち「条件つき vector コピー」はどうやったらよいのか?
R はこれを実現する独特の文法をもつ:
> dbh.new <- c(10, NA, 21, 16, NA, 13)
> dbh.old <- c(9, 8, 20, 15, 12, 11)
> (replacement <- is.na(dbh.new)) # どこが欠側値か
[1] FALSE TRUE FALSE FALSE TRUE FALSE
> dbh.new # 欠側値を含む vector
[1] 10 NA 21 16 NA 13
> dbh.new[replacement] <- dbh.old[replacement] # 欠側値のみ置き換え (条件つきコピー!)
> dbh.new # 欠側値を置き換えられた vector
[1] 10 8 21 16 12 13
……
と書けばよい.
条件式 target
は TRUE, FALSE
の vector (つまり logical
型)
であれば何でもよく,
is.na()
とかじゃなくてたとえば
> replacement <- dbh.new < 10.0
などでも良い.