Mukku John Blog

取り組んでいること を つらつら と

Rプログラミング入門

Rプログラミング入門 20回目(最終回)

ベクトル化コードの続きです。この記事で作成したスロットマシーンのシミュレーションを行います。 mukkujohn.hatenablog.com なぜベクトル化コードにするのか? 例えば、以前作成した関数を用いて、賞金の平均を求めるとすると こんな感じでループで1回ずつ…

Rプログラミング入門 19回目

スピード コードのスピード。 やっぱり、試行回数を増やしつつ、シミュレーションをするには、 コードが早くないとね。Rには、早くするテクニックがあるよ。のお話し。 ベクトル化コード コードを早くするには、下記3つを利用します。 論理テスト 添字操作 …

Rプログラミング入門 18回目

過去記事で作成したスロットマシンの賞金の期待値を算出していきます。 シンボルの一覧はこちらです。 > wheel <- c("DD","7","BBB","BB","B","C","0") > wheel [1] "DD" "7" "BBB" "BB" "B" "C" "0" この記事で使用したexpand.grid関数を使って、全ての組み…

Rプログラミング入門 17回目

このサイコロの期待値を考えながら、ループを学ぶ下準備をします。 > die <- c(1,2,3,4,5,6) > die [1] 1 2 3 4 5 6 期待値 個々の可能な事象が持つ値にその事象が発生する確率を掛けたものの合計。 これ。 なので、上のdieオブジェクトの期待値はこうです。…

Rプログラミング入門 16回目

前回の作業で、play関数を仕上げましたが、出力が美しくないです。 mukkujohn.hatenablog.comこの出力結果をどうにかしたい部分 シンボルの表示に、print関数を利用しているため、シンボルが返却されない 賞金=金額なので、$マークを付与したい > play() [1…

Rプログラミング入門 15回目

この記事の続き。 mukkujohn.hatenablog.comif~elseを利用して、score関数を作る。 おさらい 関数を作る際に、???にならないために。 複雑な問題を単純な問題に分割する 具体例を使う 文章で書いてから、Rに変換する (プログラム書き初めはこうだったかな…

Rプログラミング入門 14回目

これからの数回は、スロットマシンのシミュレーターをRで作成する過程を通じて、 これらを学んでいきます。 プログラムの設計方法 分岐処理の書き方 反復処理の書き方 ルックアップテーブルの作り方、使い方 S3メソッドの使い方 ちなみに、スロットマシンの…

Rプログラミング入門 13回目

環境 後編 この記事の後編。 mukkujohn.hatenablog.com関数実行時の環境はどうなっているのか?の続き。 評価 Rは、関数を実行する際に、 新しい環境を作り、 作った環境で関数を実行し、 関数が呼び出された環境に戻ります。 この関数で確認してみます。 > …

Rプログラミング入門 12回目

環境 前編 最初、環境とはなんぞや?と思っていましたが なんてことないオブジェクトのスコープの話。 下準備 この2つの関数の改修を通じて、 環境への理解を深めていくため、事前に作成しておきます。 (過去記事でも、何度も登場している自作関数です。) d…

Rプログラミング入門 11回目

過去記事で散々使い倒してきた、「トランプのデッキ」オブジェクトを利用して、 オブジェクト内の値の書き換え方法を学んでいきます。 下準備 この記事で保存した、card.csvファイルを、read.csv関数を利用して、 deckオブジェクトにロードしてください。 mu…

Rプログラミング入門 10回目

この記事で、保存したcards.csvファイルをdeckオブジェクトに読み込んで deckオブジェクトを操作する方法を学んでいきます。 mukkujohn.hatenablog.com 下準備 cards.csvファイルをロードしておきます > deck <- read.csv("cards.csv") > head(deck) face su…

Rプログラミング入門 9回目

この記事では、 1つのアトミックベクトルは、1つの同じデータ型で構成される事が分かりました。 mukkujohn.hatenablog.comでは1つのアトミックベクトルに、複数のデータ型の要素を割り当てると どうなるでしょうか? 型強制 character、logical、double型…

Rプログラミング入門 8回目

Rのオブジェクト Rのデータ型、データ構造を学んでいきます。 アトミックベクトル 単純なデータのベクトルです。 > die <- c(1,2,3,4,5,6) > die [1] 1 2 3 4 5 6 アトミックベクトルかどうかを確認するためには、is.vector関数を用います。 > is.vector(die…

Rプログラミング入門 7回目

今日は、ヘルプのひき方 ヘルプページの構成要素 ヘルプのひき方は、調べたい関数名の前に「?」をつけたコマンドを入れるだけです。 ?sqrt RStudioR Tools for Visual Studio どちらのツールも表示される内容が同じになっています。 英語で記載されています…

Rプログラミング入門 6回目

今日は、ヒストグラムとreplicate関数。 ヒストグラム xの個々の値について、何個のデータポイントがあるかを示してくれます。 コードとグラフを見た方が早い。 例は、xオブジェクトに、1が1個,2が3個,3が2個のベクトルを入れ、そのベクトル内で個々の値毎に…

Rプログラミング入門 5回目

今日は、パッケージ。進む前に前説。 「2個のサイコロを振る事をシミュレート」をサイコロにウェイトかけて悪だくみ。 ただ、サイコロにウェイトをかける前に、サイコロに歪みがない事を調べる。 (試行回数をすごく増やすと、全ての目の出る確率が1/6の確…

Rプログラミング入門 4回目

Rプログラミング入門 4回目。引数とスクリプト。 引数 独自関数に引数をもたせましょう。なお話し。 とりあえず、前回の記事で作成したroll関数から。 mukkujohn.hatenablog.com RStudio R Tools for Visual Studio この関数、1:6のベクトルから、元に戻す…

Rプログラミング入門 3回目

Rプログラミング入門 3回目。独自関数。 独自関数 自分で関数を作りましょう。のお話し。 この記事で、「サイコロを2回振った時をシミュレート」をする事ができました。 mukkujohn.hatenablog.com 次に、「出た目の合計」を求めます。 合計を求めるには、s…

Rプログラミング入門 2回目

Rプログラミング入門 2回目。関数と元に戻すサンプリング。 関数 関数の使い方は「R」言語だからといって、特別に異なることはなさそうです。 他の言語と同じです。 例 round関数:丸める factoial関数:階乗 ⇒ factorial(3) = 3 * 2* 1 IDEの違いだけ。 RS…

Rプログラミング入門 1回目

R を RStudioと R Tools for Visual Studioで勉強していきます。 R: The R Project for Statistical Computing RStudio – Open source and enterprise-ready professional software for R R Tools for Visual Studio 入門図書 この本に沿って進めていきます…