n05 > n07 > n01 > n05各行は,1つのセッションです。
n07 > n07 > n07 > n07
n02 > n05
n07 > n02 > n05 > n02 > n05
n05
n07 > n07 > n02
n07 > n05 > n01 > n01
n02 > n07 > n01 > n01 > n01
・・・・・・・
No.22289 Re: R 状態遷移を表形式で整理 【青木繁伸】 2017/03/04(Sat) 19:48
コンテンツ名に特定の規則がない場合にも対応できるように
臆せず for を使うfunc <- function(s) {実行結果
tbl <- NULL
s <- strsplit(s, " > ")
nameOfContents <-(table(unlist(s)))
tbl <- matrix(0, length(s), length(nameOfContents))
colnames(tbl) <- nameOfContents
for (i in seq_along(s)) {
for (j in seq_along(s[[i]])) {
tbl[i, s[[i]][j]] <- tbl[i, s[[i]][j]]+1
}
}
tbl
}
func(c("n05 > n07 > n01 > n05",
"n07 > n07 > n07 > n07",
"n02 > n05",
"n07 > n02 > n05 > n02 > n05",
"n05",
"n07 > n07 > n02",
"n07 > n05 > n01 > n01",
"n02 > n07 > n01 > n01 > n01"))n01 n02 n05 n07
[1,] 1 0 2 1
[2,] 0 0 0 4
[3,] 0 1 1 0
[4,] 0 2 2 1
[5,] 0 0 1 0
[6,] 0 1 0 2
[7,] 2 0 1 1
[8,] 3 1 0 1
No.22290 Re: R 状態遷移を表形式で整理 【明石】 2017/03/05(Sun) 08:55
青木先生,
いつもお世話になり,ありがとうございます,明石と申します。
ご教示をいただきまして,誠にありがとうございます。
追試しながら,勉強をさせていただいております。
内容については,理解しつつあります。
しかしながら,掲示板のプログラムをコピペさせていただき,実行すると,
以下のようなエラー表示があります。
誠にお手数ですが,ご確認をいただけると大変に助かります。
どうぞ,よろしくお願いいたします。
ご教示をいただきまして,誠にありがとうございます。> func <- function(s) {
+ tbl <- NULL
+ s <- strsplit(s, " > ")
+ nameOfContents <-(table(unlist(s)))
+ tbl <- matrix(0, length(s), length(nameOfContents))
+ colnames(tbl) <- nameOfContents
+ for (i in seq_along(s)) {
+ for (j in seq_along(s[[i]])) {
+ tbl[i, s[[i]][j]] <- tbl[i, s[[i]][j]]+1
+ }
+ }
+ tbl
+ }
>
> func(c("n05 > n07 > n01 > n05",
+ "n07 > n07 > n07 > n07",
+ "n02 > n05",
+ "n07 > n02 > n05 > n02 > n05",
+ "n05",
+ "n07 > n07 > n02",
+ "n07 > n05 > n01 > n01",
+ "n02 > n07 > n01 > n01 > n01"))
tbl[i, s[[i]][j]] でエラー: 添え字が許される範囲外です
No.22291 Re: R 状態遷移を表形式で整理 【青木繁伸】 2017/03/05(Sun) 09:39
4 行目がおかしかったようです(関数名 names が落ちてしまった)
nameOfContents <- names(table(unlist(s)))
No.22292 Re: R 状態遷移を表形式で整理 【明石】 2017/03/05(Sun) 10:13
青木先生,
いつもお世話になり,ありがとうございます,明石と申します。
ご教示をいただきまして,誠にありがとうございます。
何度もお手を煩わせてしまい,申し訳ございませんでした。
無事に確認できました。
プログラムの内容も,理解できました。
ここで使われているノウハウはとても貴重であり,色々と役立ちます!
お示しくださいましたプログラムは,
状態遷移を記載した外部ファイル"Transition.txt"を,
scan()関数で読み込むように,汎用化させていただきました。
ご教示をいただきまして,誠にありがとうございます。
心から御礼を申し上げます。
● 「統計学関連なんでもあり」の過去ログ--- 048 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る