ラベル R の投稿を表示しています。 すべての投稿を表示
ラベル R の投稿を表示しています。 すべての投稿を表示

[R] R の hist() でのヒストグラムに、各階級の度数を書き入れる #2

前回の記事では、hist() を使って描いたヒストグラムに、各階級の度数を書き入れました。

ただ、毎回スクリプトを書いているのは面倒なので(?)、上記機能を組み入れたりして hist() を拡張した myhist() を作りました。

基本的には自分用なので、平均点を表す線を引いたりするのも入れてあります。もしもお役に立ちそうでしたらご自由にお使いください。



[R] R の hist() でのヒストグラムに、各階級の度数を書き入れる

やりたいこと:

R で hist() を使って、ヒストグラムを描き、
加えて、各階級の度数を表示する。
つまり、次のような感じ:


なお、データは Rに入っている iris を利用する。

1. やり方

irisの1列目のデータを利用する。今回は、わかりやすさのために、変数d に iris[,1] を代入しておく。つまり、変数d に分析したいデータ (ベクトル) が入っているものとする。ではズバリ、次のように書く:



2. 仕組み

変数infoの中には、次の通り、ヒストグラムを描くための情報が入っている (info で出てくる):

このうち、今回関連のある情報は:
  • $counts が度数
  • $mids が階級値 (階級の真ん中の値)
ですので、
  • x座標 = info$mids
  • y座標 = 1 (この値は任意)
の位置に info$counts を書き入れる (text()) 、ということ。

なお、y座標はお好みで。下にいくつか例をあげておく。

y=info$counts-1


y=info$counts+0.5


y=info$counts/2


  • hist() を拡張した myhist()はコチラ


[R] abc並べ替えスクリプト

与えられた英文を、各単語に分けてabc順に並べ替えスラッシュで区切る関数を、Rで書いたことがあった。例えば、

    this is an example sentence
と入力すると、
    an / example / is / sentence / this
と返してくれる。1年くらい前に書いたものがこちら:

計9行。forが1つ。自分で使う分には一切問題がないし、頑張って書いたのでずっと使っていたのだが、ごちゃごちゃしている。書き直してみる。

計6行。forはないし、見た目もスッキリ。

以前はウンウン唸りながら1~2時間くらいかけて書いたものが、今では3分くらいで書けるように。私はR (を始めプログラミング) の専門的な訓練を受けたことはないが、本やインターネットのおかげで、自分にとって十分役にたつスクリプトが書けるようになってきた。このエントリーも誰かの役に立てば嬉しい。

なお、使い方は:

  1. 上のスクリプトをコピーandペースト、そしてエンターキーを押す。
  2. narabe("") と入力し (全て半角文字)、ダブルクオーテーションマークの間に変換したい文字列を入力する。エンターキーを押す。
  3. 例 narabe("this is an example sentence")
  4. 変換された文字列が返ってくる。

1. Copy and Paste, and the Press Enter
2. narabe("")
3. Voilà!

[R] 単語の文字をバラバラ (かつ、元の形がなんとなくわかるよう) に並び替えるウェブ・アプリ

概要

"StrAlt" の"Tihs is an" を選択すると、単語の文字をバラバラ (かつ、元の形がなんとなくわかるよう) に並び替えます:

使い方

  1. "Choose a Type:" の下のボタンから、"Tihs is an" を選びます。
  2. その下のボックスに変換したい文を入力 (or コピぺ) します。
  3. なお、英文でなく、語句 (文より小さな単位) や文章 (複数の文) でも処理されます。
  4. 自動的に変換された文字列が "Sentence(s) modified:" の下に表示されます。
StrAlt

留意点

  1. 無料
  2. お金はかかりません。
  3. 入力された文字列のデータを取得しません
  4. どんな文字列が入力されたか、私には分かりません。
  5. 画面が黒くなる or うまく動かない
  6. 画面が黒くなって反応をしなくなることがたまにあります。ブラウザの再読み込みをしてみてください。
  7. 免責
  8. 上記ウェブ・アプリが悪意のある動作をすることは無いと思いますが、ご利用による一切の責任は負えません。ご自身の責任でご利用ください。
  9. 他のボタンの機能
  10. 他のボタンについては、こちらに説明があります。

その他
Shiny を利用した他のウェブ・アプリもぜひお試しください:

  • ABC Order
  • this is an example sentence --変換--> ( an / example / is / sentence / this )

  • Numbered ABC Order
  • this is an example sentence --変換--> ① an ② example ③ is ④ sentence ⑤ this

  • Katakana ABC Order
  • this is an example sentence --変換--> ア. an イ. example ウ. is エ. sentence オ. this

  • c() ize
  • エクセルデータの行or列をコピペ --変換--> c()を用いたベクトル (dat1 <- c (1, 2, 3, 5, 8))

[R] .JPGファイルを別のフォルダーにコピーする

デジタル一眼レフでは、JPGデータだけでなくRAWデータも記録できます。そのデータをパソコンに移すと、.JPG と .CR2 (こちらがRAWデータ) の2種類の拡張子を持つデータが保存されます。

.JPGのデータのみを別のフォルダ (Dropboxに作成したフォルダ) にコピーするスクリプトです:

  • 2行目 setwd(): データを保存したフォルダーを作業ディレクトリに指定。
  • 4行目 list.files(pattern="\\.JPG"): .JPGの拡張子を持つファイルの一覧を獲得し、filesに入れる。
  • 6行目 paste("保存先フォルダ", i, sep=""): 保存先フォルダと保存名称を決め、nameに入れる。
  • 7行目 file.copy(i, name): コピー。

.JPGで十分であればそのまま、不十分であればRAWデータを現像して上書き、という手順が便利です。

[R] 英文をabc順に並び替え さらに ア.イ.ウ. ... と振るウェブ・アプリ

英文を単語に分解し、アルファベット順に並べ替え、さらに、並べ替えた後にア.イ.ウ. ... と記号をふるウェブ・アプリです。

たとえば、this is an example sentence と入力すると、
自動で、ア. an イ. example ウ. is エ. sentence オ. this と変換します。

使い方

  1. もとの英文を、"Text Input" の下のボックスに入力します (例: this is an example sentence)。
  2. 並べ替えられた英文が、"Text Arranged and Numbered" の下に表示されます (例: ア. an イ. example ウ. is エ. sentence オ. this)。
  3. 表示された英文を、WordやPagesのファイルにコピペします。
  4. なお、Word for Macの場合、Control + Command + V でテキストのみ貼り付けができます (書式は貼り付けない)。
  5. 必要に応じて、整形 (タブやスペースを入れる) してください。
上手な使い方
  1. 文頭を小文字にする
  2. 先頭の単語が固有名詞や "I" の場合をのぞき、先頭を小文字に変えて入力します。大文字は大文字のまま、小文字は小文字のまま並べ替えます。
  3. 文末のピリオドやクエスチョン・マークなどを入力しない
  4. 文末にピリオドなどを入力する必要はありません。
留意点
  1. 無料
  2. お金はかかりません。
  3. 入力された文字列のデータを取得しません
  4. どんな文字列が入力されたか、私には分かりません。
  5. 免責
  6. 上記ウェブ・アプリが悪意のある動作をすることは無いと思いますが、ご利用による一切の責任は負えません。ご自身の責任でご利用ください。

その他
Shiny を利用した他のウェブ・アプリもぜひお試しください:

  • ABC Order
  • this is an example sentence --変換--> ( an / example / is / sentence / this )

  • Numbered ABC Order
  • this is an example sentence --変換--> ① an ② example ③ is ④ sentence ⑤ this

  • c() ize
  • エクセルデータの行or列をコピペ --変換--> c()を用いたベクトル (dat1 <- c (1, 2, 3, 5, 8))
  • StrAlt
  • 入力された文字列を加工します。大文字化・小文字化・各語の先頭文字を大文字化・母音をアンダーバー化・子音をアンダーバー化・各語の先頭文字以外をアンダーバー化。

[R] install.packages() するパッケージのメモ (私家版)

Rは、パッケージをダウンロード・インストールして関数を追加していくことができる。

Rをインストールしてから、install.packages() でダウンロードするパッケージのメモ。:

irtoys
ggplot2
koRpus
psych
RCurl
shiny

気がつき次第、追加していく。

[R] 文字列を加工するウェブ・アプリ

概要

"StrAlt" は文字列を加工するウェブ・アプリです:

使い方

  1. "Choose a Type:" の下のボタンから、どれか一つを選択します。
    • CAPITAL は全て大文字に;
    • lowercase は全て小文字に;
    • This Is An は各語の先頭文字だけ大文字に;
    • No aeiou は母音をアンダーバーに;
    • No aeiouy は母音+y をアンダーバーに;
    • T___ i_ a_ は各語の先頭文字以外をアンダーバーに変換します。
  2. その下のボックスに変換したい文を入力 (or コピぺ) します。
  3. なお、英文でなく、語句 (文より小さな単位) や文章 (複数の文) でも処理されます。
  4. 自動的に変換された文字列が "Sentence(s) modified:" の下に表示されます。
StrAlt

留意点

  1. 無料
  2. お金はかかりません。
  3. 入力された文字列のデータを取得しません
  4. どんな文字列が入力されたか、私には分かりません。
  5. 免責
  6. 上記ウェブ・アプリが悪意のある動作をすることは無いと思いますが、ご利用による一切の責任は負えません。ご自身の責任でご利用ください。

その他
Shiny を利用した他のウェブ・アプリもぜひお試しください:

  • ABC Order
  • this is an example sentence --変換--> ( an / example / is / sentence / this )

  • Numbered ABC Order
  • this is an example sentence --変換--> ① an ② example ③ is ④ sentence ⑤ this

  • c() ize
  • エクセルデータの行or列をコピペ --変換--> c()を用いたベクトル (dat1 <- c (1, 2, 3, 5, 8))

[R] koRpus (TreeTagger の Rラッパー) で原形と品詞情報を得る

TreeTaggerR で利用するためのラッパーである koRpus を使って、英語テキストの原形と品詞情報を得ます。なお、Mac (Yosemite) を使っています。

[1] TreeTagger と koRpus をダウンロード・インストールします:

[2] R を起動し、まずは下準備:

library(koRpus)
set.kRp.env(TT.cmd="/Users/[ユーザー名]/Applications/TreeTagger/cmd/tteng", lang="en")
  • library(koRpus) は koRpusパッケージの呼び出し。
  • set.kRp.env(TT.cmd="パス", lang="en") でtree-tagger-english-utf8 (上ではttengを利用) の場所と、分析する言語 ("en"glish) を指定。
TT.cmdの指定でファイルパスを入力するのが面倒であれば:
set.kRp.env(TT.cmd=file.choose(), lang="en")
とすると簡単。ファインダー (?) が立ち上がるので、cmdの下にあるtree-tagger-englishを選択。これで準備が完了です。

[3] 実際に分析をするには、分析したいファイルがある作業ディレクトリに移動してから:

taggedText(treetag("分析したいファイル名.txt"))
でO.K.です。データフレームで返ってきます。
  • $token がそのままの形、
  • $lemma が原形、
  • $wclass が品詞、
  • です。
  • $tag の読み方は詳しく説明されています [pdf]。
なお、treetag("ファイル名.txt") だと、文字数や語数や行数や他の情報も返してくれます。taggedText() で、そこから原形や品詞情報などだけを選んで表示してくれます。


参考
  • Package ‘koRpus’ [pdf]
  • Using the koRpus Package for Text Analysis [pdf]

[R] ggplo2 でヒストグラム描出入門

ggplot2 を使ってヒストグラムを描く。基本的な使い方のメモ。「3. まとめ」に一覧をリストアップしています。

1. 準備
分析する練習データは:
data <- c( 0, 14, 30, 30, 46, 48, 49, 50, 52, 53, 54, 55, 56, 60, 63, 64, 65, 66, 68, 68, 72, 73, 74, 76, 78, 81, 81, 84, 86, 93, 93, 100 )
を利用する (乱数をつかって作成した)。データフレームに変換する (列名は score とする):
data <- data.frame(score = data)


2. 作図
さて、ggplot2を読み込んでから、ggplot()を利用し、変数 m に入れる:
library(ggplot2)
m <- ggplot(data, aes(x = score))
変数dataに入っているデータフレームの、列名score のデータを利用する、と考えると分かりやすい。わざわざ aes(x = data$score) とせずに aes(x = score) だけで良い様子。

では、geom_histogram()で作図する:
m + geom_histogram()
Fig 1. m + geom_histogram()


警告がでる( "stat_bin: binwidth defaulted to range/30. Use 'binwidth = x' to adjust this." )
階級の幅がデフォルトでは range/30 となっている。binwidth=x を利用して階級の幅を10にしてみよう:
m + geom_histogram(binwidth=10)
Fig 2. m + geom_histogram(binwidth=10)


さて、全体的に真っ黒で分かりづらい。枠の色を黒、中身の色を透明にしてみる:
m + geom_histogram(binwidth=10, colour="black", fill=NA)
Fig 3. m + geom_histogram(binwidth=10, colour="black", fill=NA)


枠をdarkgreen、中身をskyblueにしてもキレイ:
m + geom_histogram(binwidth= 10, colour="darkgreen", fill="skyblue")
Fig 4. m + geom_histogram(binwidth= 10, colour="darkgreen", fill="skyblue")


枠線の指定はイギリス式にcolour でも アメリカ式にcolorでも、どちらでも通用する。

さて、ここで0 + 10n の値がどちらの階級に含まれているか、確認しておこう。上の図を見ると:
0点より左側にビンが無く、100よりも右側にビンがある
のだ。ということから、binwidth=10 とした時、0~9, 10~19, 20~29,...,90~99, 100~109 という階級になっていることが分かる。
したがって、次のように、binの幅を明示的に指定しても、Fig.4 と同じプロットができる:
m + geom_histogram(breaks=seq(-0.5, 109.5, by=10), colour="darkgreen", fill="skyblue")
Fig 5. m + geom_histogram(breaks=seq(-0.5, 109.5, by=10), colour="darkgreen", fill="skyblue")


さて、灰色の背景色を白色にしたい場合は theme_bw() を利用する。theme_bw() の bw は blackとwhiteの略の様:
m + geom_histogram(binwidth=10, colour="black", fill=NA) + theme_bw()
Fig 6. m + geom_histogram(binwidth=10, colour="black", fill=NA) + theme_bw()


X軸, Y軸, タイトルをつけるには labs() を利用する:
m + geom_histogram(breaks=seq(-0.5, 109.5, by=10), colour="darkgreen", fill="skyblue") + theme_bw() + labs(y="Frequency", x="Score", title="Histogram of DATA")
Fig 7. m + geom_histogram(breaks=seq(-0.5, 109.5, by=10), colour="darkgreen", fill="skyblue") + theme_bw() + labs(y="Frequency", x="Score", title="Histogram of DATA")


軸の幅 (定義域や値域) を指定するには xlim( , ) や ylim( , ) を利用する。Y軸を10まで伸ばしてみる:
m + geom_histogram(breaks=seq(-0.5, 109.5, by=10), colour="darkgreen", fill="skyblue") + ylim(0,10)
Fig 8. m + geom_histogram(breaks=seq(-0.5, 109.5, by=10), colour="darkgreen", fill="skyblue") + ylim(0,10)


図を横にするには coord_flip() を利用:
m + geom_histogram(binwidth=10, colour="darkgreen", fill="white") + coord_flip()
Fig 9. m + geom_histogram(binwidth=10, colour="darkgreen", fill="white") + coord_flip()



3. まとめ
  • データの指定: ggplot(変数名, aes(x = 列名))
  • ヒストグラム描出: + geom_histogram()
    • 幅を指定: + geom_histogram(binwidth = 数値)
    • 枠線の色: + geom_histogram(colour = "色")
    • ビンの色: + geom_histogram(fill = "色")
  • 背景色を透明: + geom_histogram() + theme_bw()
  • 軸やタイトル: + geom_histogram() + labs(x = "x軸名", y = "y軸名", title = "タイトル")
  • 定義域の指定: + geom_histogram() + xlim( , )
  • 値域の指定: + geom_histogram() + ylim( , )
  • 図を横に倒す: + geom_histogram() + coord_flip()

4. 参考

[R] ggplot2 入門

調べ物をしていたら、ggplot2 を利用した図を何度か目にした。非常に美しい。ぜひ使えるようになりたい。以下、リンク:

上記リンク先の説明は、どれも非常に分かりやすい。図であろうと言語であろうと、情報を分かりやすく伝達するための配慮を感じる。

[R] Excel データをコピペすると ベクトル (<-c()) に変換する ウェブ・アプリ

概要
エクセル・データをコピペすると、ベクトル (x <- c(1,2,3) ) に変換するウェブ・アプリです。

背景
エクセル (Excel) でデータを管理し、分析の際に R を利用することがあります。そのために、エクセルのデータをCSVデータに変換し、Rで読み込む必要がありますが、その作業が面倒です。また慣れるまではとても難しく感じます (R を使い始めたばかりの頃、その作業が出来ず、手打ちでデータを読み込ませていました)。よし分析するぞ、と意気込んだものの、データの読み込みが出来ずがっかりする、という経験をした人は少なくないと思います。そこで、エクセルデータを単にコピー&ペーストするだけで、R で扱えるデータに変換してくれるウェブ・アプリを作りました。

使い方

  1. エクセルデータをコピーします

  2. 例として、「A組中間考査」の赤で囲った部分をコピーします。

  3. ウェブ・アプリ上で データの貼付け (①) 変数名の決定 (②)

  4. 下の Data: の欄に、先ほどコピーしたデータを貼付けます。また、そのデータの格納先の変数名は、Vector Name 欄に入力します (例では a.mid としています)。

  5. 変換されたデータをコピーし、R コンソールへペースト

  6. 自動的にデータがベクトルに変換されます。コピーして、R コンソールにペーストしてください。これで、「A組中間考査」のデータは a.mid として R で利用可能です。

  7. 必要な分、繰り返し
  8. 「A組期末考査」のデータも分析したい場合は、上の手順をくり返します。変数名は a.term などが良いかもしれません。

上手な使い方

  1. 今回は縦に入力されたデータをコピペしましたが、横に入力されたデータを変換することも出来ます。

留意点

  1. 無料
  2. お金はかかりません。
  3. 入力された数値のデータを取得しません
  4. どんな数値が入力されたか、私には分かりません。
  5. 免責
  6. 上記ウェブ・アプリが悪意のある動作をすることは無いと思いますが、ご利用による一切の責任は負えません。ご自身の責任でご利用ください。



参考





[R] 英文をabc順に並べ替え さらに 番号を振る ウェブ・アプリ

英文を単語に分解し、アルファベット順に並べ替え、さらに、並べ替えた後に番号をふるウェブ・アプリを作りました。

例えば、this is an example sentence と入力すると、
自動で ① an ② example ③ is ④ sentence ⑤ this と変換します。

使い方

  1. もとの英文を、"Text Input" の下のボックスに入力します (例: this is an example sentence) 。
  2. 並べ替えられた英文が、"Text Arranged and Numbered" の下に表示されます (例: ① an ② example ③ is ④ sentence ⑤ this) 。
  3. 表示された英文をコピー・アンド・ペーストします。
  4. 必要に応じて整形 (タブやスペースを入れる) してください。
  5. (丸囲み数字と単語の間には半角スペースが1つ入っています)
上手な使い方
  1. 文頭を小文字にする
  2. 先頭の単語が固有名詞や "I" の場合をのぞき、先頭を小文字に変えて入力します。大文字は大文字のまま、小文字は小文字のまま並べ替えます。
  3. 文末のピリオドやクエスチョン・マークなどを入力しない
  4. 文末にピリオドなどを入力する必要はありません。
留意点
  1. 無料
  2. お金はかかりません。
  3. 入力された英文のデータを取得しません
  4. どんな英文が入力され並び替えられたか、私には分かりません。安心してご利用ください。
  5. 免責
  6. 上記ウェブ・アプリが悪意のある動作をすることは無いと思いますが、ご利用による一切の責任は負えません。ご自身の責任でご利用ください。


参考

[R] 英文をabc順に並べ替えるウェブ・アプリ

英文を単語に分解し、アルファベット順に並べ替えるウェブ・アプリを作りました。

例えば、this is an example sentence と入力すると、
自動で ( an / example / is / sentence / this ) と変換します。

使い方

  1. もとの英文を、"Text Input" の下のボックスに入力します (例: this is an example sentence) 。
  2. 並べ替えられた英文が、"Text Arranged" の下に表示されます (例: ( an / example / is / sentence / this )) 。
  3. 表示された英文をコピー・アンド・ペーストします。
上手な使い方
  1. 文頭を小文字にする
  2. 先頭の単語が固有名詞や "I" の場合をのぞき、先頭を小文字に変えて入力します。大文字は大文字のまま、小文字は小文字のまま並べ替えます。
  3. 文末のピリオドやクエスチョン・マークなどを入力しない
  4. 文末にピリオドなどを入力する必要はありません。
留意点
  1. 無料
  2. お金はかかりません。
  3. 入力された英文のデータを取得しません
  4. どんな英文が入力され並び替えられたか、私には分かりません。安心してご利用ください。
  5. 免責
  6. 上記ウェブ・アプリが悪意のある動作をすることは無いと思いますが、ご利用による一切の責任は負えません。ご自身の責任でご利用ください。


参考

[R] Excel for mac で作ったCSVファイルをRで開く

Mac, R, Excel for mac メモ
  • 症状:Excel for mac で管理していたデータを分析するために、csvファイルとして名前を付けて保存したが、Rで開けない。
  • Error in make.names(col.names, unique = TRUE) : invalid multibyte string at...
  • 解決法:fileEncoding="cp932" と指定する。
    x <- read.csv("file.csv", fileEncoding="cp932")

ソース

[R] Shinyの準備

Shiny パッケージを使うと、インタラクティブな Web Application を手軽に作ることが出来るらしい。実物も拝見したが、とても素敵。

[R] Rでテキストマインニング (英語編)

Rを使って、英語で書かれたテキストを分析する準備。便利なリンク先とメモ:

  1. OsakaR_7: Rでテキストマイニングをする前に
    1. Package ‘tm’ [pdf]
    2. Stemming (Wikipedia)
    3. Lemmatisation (Wikipedia)
  2. TreeTagger- a language independent part-of-speech tagger
    1. TreeTaggerを使った英語の形態素解析 (よしなしごと)
    2. Mac OS X でシェル(bash)のパスを通す (chichirou技術メモ)
    3. TreeTagger [投野先生の授業ページwiki; Windowsでインストールから実行まで]
    4. Tree Tagger の連続実行 [投野先生の授業ページwiki]
      1. [メモ]"cmd/tree-tagger-english-utf8" は長いので、"tree-tagger-english-utf8"を"tteng"と名称変更した。→ ターミナルで "tteng ファイル名" で品詞と原形を表示してくれる。
*****

#tmパッケージをインストールする:
> install.packages("tm", dependencies=TRUE)

#tmパッケージを読み込む:
> library(tm)

[Car] クイック板金(2回目)

車のバンパーを擦ってしまった。。。ということで、 イエローハットのクイック板金 にお願いしていました。別の店舗に持って行っての作業ということで数日かかりましたが、無事に車が帰ってきました。結果、とても綺麗に直してもらい、非常に満足しています。板金をしたと言われても、素人目にはわか...