*disclaimer
449055
R.text
テキストファイルの読み込み
scan() で文字化けが原因で読み込めない場合
invalid multibyte string
- 文字コードの指定オプション fileEncoding="UTF-8"
- もしくは、encoding="Shift-JIS"
bun.tmp <- scan("ファイル名", what="char", sep="\n", fileEncoding="UTF-8")
文字数を数える: nchar()
文字変数の中身を出力する: print()
変数を連結した後、中身を出力する: cat()
- 要素を連結して、出力する。
- print()は、出力だけ。
- cat()は、連結と出力をする。
- paste()は、連結だけ。
- オプション file="ファイル名" をつけることでファイルに保存できる。
- append=T を指定すると、既存のファイルに追記する。
文字を連結する:paste()
- 連結するものはデフォルトでは半角スペース
- 変えたいときは、 sep="文字列" と指定する
- ベクトルの要素をつなげるときは、 collapse="文字列" で指定する
置換
データフレーム内の文字列の置き換え
- 直接は扱えないので、いったん、マトリックスに変換して、元に戻す
- 一旦マトリックスに変化して、元に戻すと、データの型がchrになってしまう
- 数字は型を戻す必要がある
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) # 必要なところ型を戻す
- 上で使った置換部分のスクリプト
myMW <- function(a){ gyappu <- gsub("\\(([[:upper:]]+) \\)", "[\\1]", a) kakkoMoji <- gsub("\\([[:upper:]]+\\$* *", "", gyappu) #所有格のPRP$の$も取る gyappu2 <- gsub("\\)\\[", " [", kakkoMoji) tojiKakko <- gsub("\\)", "", gyappu2) tojiKakko }
- 置換前
> 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
- 置換後
> 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
https://sugiura-ken.org/wiki/