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()
をつけるなどして「ラベル」をはぎとってしまえばよい.