while (m/,"[^"]*,[^"]*"/o) {
s/(,"[^"]*)(,)([^"]*")/$1:$3/o;
}
NA
ばかりの x 列をもつ変な data.frame があったときに,
> x <- c(1, NA, NA, NA, 2, NA, 3, NA, 4, NA, NA)
> d <- data.frame(x = x, y = 1:length(x))
> d
x y
1 1 1
2 NA 2
3 NA 3
4 NA 4
5 2 5
6 NA 6
7 3 7
8 NA 8
9 4 9
10 NA 10
11 NA 11
こういう for() な「ださい」関数を定義すると,
fill.na <- function(v)
{
for (i in 2:length(v)) if (is.na(v[i])) v[i] <- v[i - 1]
v
}
data.frame d
の列を変換できますよ,
というだけのハナシだったんで.
> d$x <- fill.na(d$x) > d x y 1 1 1 2 1 2 3 1 3 4 1 4 5 2 5 6 2 6 7 3 7 8 3 8 9 4 9 10 4 10 11 4 11
library(R2WinBUGS)
な R コードがわで定義してはいけない)
……
やってしまった場合,
わけわからんエラーを吐くのでなかなか原因が特定できない.
library(grid)
使ってかくだけのことなんだけど,
それこそ階層的に呼び出される関数たちの抽象化ぐあいの調整,
といったことに時間をとられて,
ですね
……
設計がまずかったこのしくみも次第に汎用性を獲得しつつある.
inits(1,z:/home/kubo/aa/winbugs/inits1.txt) expected collection operator cこういうゐんばぐすエラーがでたら, たいていのヒトには対処不可能だと思うんだが …… いろいろ試行錯誤してみた結果,
library(R2WinBUGS)
で定義される「パラメーター初期化関数」
inits()
の中で vector が「ラベルつき」だとこのエラーが出ると判明:
R2WinBUGS が生成する inits1.txt
の中で一次元データが structure() あつかいになり,
なぜか WinBUGS はこれを利用できず上記エラーをだす.
inits() 内の vector に
c() をつけるなどして「ラベル」をはぎとってしまえばよい.