R !!!R.text {{outline}} ---- !!テキストファイルの読み込み !scan() で文字化けが原因で読み込めない場合 invalid multibyte string *文字コードの指定オプション fileEncoding="UTF-8" **もしくは、encoding="Shift-JIS" bun.tmp <- scan("ファイル名", what="char", sep="\n", fileEncoding="UTF-8") !文字数を数える: <> !文字変数の中身を出力する: print() !変数を連結した後、中身を出力する: cat() * 要素を連結して、出力する。 ** print()は、出力だけ。 ** cat()は、連結と出力をする。 *** paste()は、連結だけ。 * オプション file="ファイル名" をつけることでファイルに保存できる。 * append=T を指定すると、既存のファイルに追記する。 !文字を連結する:<> *連結するものはデフォルトでは半角スペース *変えたいときは、 sep="文字列" と指定する *ベクトルの要素をつなげるときは、 collapse="文字列" で指定する !!置換 !データフレーム内の文字列の置き換え *直接は扱えないので、いったん、マトリックスに変換して、元に戻す **一旦マトリックスに変化して、元に戻すと、データの型がchrになってしまう *数字は型を戻す必要がある {{pre ja2.mx <- as.matrix(ja2.dat) # いったんマトリックスに ja2.mw <- myMW(ja2.mx) # ここで文字列置換 ja2.dat2 <- as.data.frame(ja2.mw) # データフレームに戻して ja2.dat2$freq <- as.integer(ja2.dat2$freq) # 必要なところ型を戻す }} *上で使った置換部分のスクリプト {{pre myMW <- function(a){ gyappu <- gsub("\\(([[:upper:]]+) \\)", "[\\1]", a) kakkoMoji <- gsub("\\([[:upper:]]+\\$* *", "", gyappu) #所有格のPRP$の$も取る gyappu2 <- gsub("\\)\\[", " [", kakkoMoji) tojiKakko <- gsub("\\)", "", gyappu2) tojiKakko } }} *置換前 {{pre > head(ja2.dat) fragment freq 1 (NP (JJ young) (NNS people)) 385 2 (NP (NP (DT a) (NN )) (PP (IN of) (NP ))) 269 3 (VP (VBP do) (RB n't) (VP )) 237 4 (NP (NP (DT the) (NN )) (PP (IN of) (NP ))) 225 5 (VP (VBP do) (RB not) (VP )) 255 6 (VP (VBP want) (S (VP (TO to) (VP )))) 219 }} *置換後 {{pre > head(ja2.dat2) fragment freq 1 young people 385 2 a [NN] of [NP] 269 3 do n't [VP] 237 4 the [NN] of [NP] 225 5 do not [VP] 255 6 want to [VP] 219 }}