{{counter}} !!!R.tips Rを使う時のちょっとしたこと !テキスト処理の前処理 *アポストロフィーの記号「'」:目的に合わせて方針を決めて処理する。記号類に含めてしまうのも手。 **縮約形 **所有格 **引用符 *記号類の削除 x <- gsub("[[:punct:]]", " ", x) *重複するスペースやタブ(whitespace)をスペース一つに x <- gsub("[[:space:]]+", " ", x) **行頭のスペースの削除 x <- gsub("^ ", "", x) **行末のスペースの削除 x <- gsub(" $", "", x) *全部小文字に x <- tolower(x) !tips *データの種類:型を調べる <> **ベクトル:一次元・一種類の要素の連なり ***<> **行列  :二次元・一種類の要素の連なり ***<> **配列  :多次元・一種類の要素の連なり ***<> **リスト :二次元の要素の連なり。違う種類も可。 ***<> **データフレーム:二次元の要素の連なり。違う種類も可。 ***<> *あるデータフレームの中の特定の列と特定の列だけを取り出して、新しいデータフレームを作る。 > head(jpn.4) file Score Token Type NoS TTR GI MATTR AWL ASL 1 JPN501.txt 4 319 135 30 0.4231975 7.558549 0.5921317 4.304075 10.63333 2 JPN502.txt 4 356 161 29 0.4522472 8.532983 0.6649157 4.233146 12.27586 3 JPN503.txt 3 201 121 13 0.6019900 8.534682 0.7170149 4.746269 15.46154 4 JPN504.txt 4 260 140 27 0.5384615 8.682431 0.6877692 4.761538 9.62963 5 JPN505.txt 4 420 175 25 0.4166667 8.539126 0.6341905 3.995238 16.80000 6 JPN506.txt 3 261 124 20 0.4750958 7.675407 0.6390038 4.072797 13.05000 > jpn.tt <- data.frame(jpn.4$Type, jpn.4$Token) > head(jpn.tt) jpn.4.Type jpn.4.Token 1 135 319 2 161 356 3 121 201 4 140 260 5 175 420 6 124 261 > colnames(jpn.tt) <- c("type", "token") > head(jpn.tt) type token 1 135 319 2 161 356 3 121 201 4 140 260 5 175 420 6 124 261 > jpn.tt$ttr <- jpn.tt$type / jpn.tt$token > head(jpn.tt) type token ttr 1 135 319 0.4231975 2 161 356 0.4522472 3 121 201 0.6019900 4 140 260 0.5384615 5 175 420 0.4166667 6 124 261 0.4750958 *欠損値を見つける関数 <> *データ中の特定の行を外すには、行の要素番号にマイナス記号をつける。 data[-56,] **複数ある場合は、 data[c(-56,-159)] *要素に重複がある場合に重複をなくす。<> **事前にソートしておかなくてもよい点に注意 *二つのリストの差異 **共通部分 <> **相違部分 <> *既存のスクリプトの読み込み <> *データを読み込んだ時の「Read ... items」の表示を出ないようにする。scan( , <>) *現在の作業ディレクトリーはどこか: <> *作業ディレクトリーの変更:<> **「行き先」は現在の作業ディレクトリーからみた相対的な位置(フォルダー名など) ***一つ上に行くには、<> と、ドット二つ **横のディレクトリーに移る(例えば、今、Aというフォルダーにいて、隣のBに移る)には、 ***いったん、上に行って、その下のディレクトリーを指定するか、 ***<> と、..で上に行った後、その下のディレクトリーを続けて指定すればよい。 **いずれにせよ、ディレクトリーを移動したら、 ***今いるディレクトリーの確認 <> と ***そこにあるファイルの一覧の確認 <> をすること。 *ファイルを読み込む: データフレーム名 <- <>("ファイル名") **見出し付の場合は、オプションを付ける:データフレーム名 <- read.table("ファイル名", header = T) **CSVファイルの場合は read.csv("ファイル名", header = T, sep = ",") **オプション <>を付けないとFactor型になってしまうことがあるので注意。 *型の確認 <> *Factor型になってしまったものを文字列に変換する関数<>(例:wordlist) wordlist <- as.charactor(wordlist) *クリップボードのデータを読み込む **Windows:データフレーム名 <- read.table("clipboard") ***見出しをつけて読み込むには、header=T オプションをつける **MacOS:データフレーム名 <- read.table(pipe("pbpaste")) *Rでのデータの形式は、被験者(A, B, C)を縦一列に並べて、その右に各種データを並べていく形が基本 ,ID,Listening,Grammar,Reading ,A,35,49,45 ,B,39,33,34 ,C,44,43,42 *これで、リスニングデータだけを処理対象にしたい場合は、データフレーム名$Listening で、35, 39, 44 という数字が使える。 *リスニングの平均を出すには: <>(データフレーム名$Listening) *数値のプロット:<> ++> plot(mwu) ++> lines(smooth.spline(mwu)) **と続けると線が上書きされる *データフレーム <- read.table("clipboard")で読み込んだデータを、ベクトルにする: x <- c(データフレーム) *データをちょっとイジリタイ場合:<>(データ) *データフレームに入っているデータのうち、特定の変数のデータのみを処理対象にしたい場合: **データフレーム名$変数名 **変数名がついていない場合 ***データフレーム名[,列番号] *いちいち「データフレーム名$」を書くのが面倒な場合、 **<> としておくと、それ以降は、 **「データフレーム名$」を書かずに、変数名だけで処理できる。 **そのデータフレームを使うのをやめて次の作業に移る場合は、 **detach(データフレーム名) をして解除しておく。 *「見出し」をつける colnames(x) <- c("one", "two") names(x) <- c("one", "two") *コンソールからの入力の際のメタキャラクターのエスケープは、バックスラッシュを二重にする \\ !正規表現 *Rでも基本的な正規表現は使用できる。 **注意点 ***エスケープは、\\ *Perlの正規表現を使いたい時は、perl = TRUE オプションをつける **参考リンク ***http://www.okadajp.org/RWiki/?R%20%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE ***https://stats.biopapyrus.jp/r/devel/regex.html !!Macでのこと *GUIでファイルを読み込むには **× choose.files() **○ <> *セパレーターの指定で改行は「\n」だが、 **× そのまま \n **○ オプションを押して\n ***半角の\とバックスラッシュが区別されている! ***オプションを押しながら\を押してからnを押す ***★これは、\nだけでなく、正規表現として\を使う場合は常に。