トップ 履歴 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

R.text

*disclaimer
603378

R

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