入力すればデモをみることができます。すればオンラインヘルプが出ます。ブラウザによるヘルプがみられます。>起動時の説明にある通り、終了するには、q()を実行することを覚えておきましょ。オブジェクトの代入から。代入には”<-“を使います。10R言語は関数も含めすべてがオブジェクトですので、aもオブジェクトとなります。値を確認してみましょう。10>“=”や”assign”関数も使えます。20>関数を使用するには、()で囲みます。30>変数の値は、変数名を入力するだけで確認できます。;(セミコロン)を使うと、一行に複数記述できます。30>四則演算はそのまま書けます。-306>数列を作成するには、c()関数を使います。R言語ではベクトルと呼びます。3>なぜベクトルを作るのに、c()関数なんでしょう。cは、concatenateするのcの意味です。c()関数を使った結果、ベクトルになるだけなのです。6>連続する数列は:(コロン)を使うことで簡単に作れます。10>さて、ずっと気になっている結果を表示する際の[1]についてですが、これは、その行の一番最初の要素がベクトルの何番目であるかを示しています。1~100までの数列を作ると確認できます。100>101~200だとこのような結果です。200>代入したオブジェクトの一覧を得るには、ls()を使います。ベクトルベクトルを使っていきたいと思います。R言語のベクトルは、複数の要素が格納できるオブジェクトです。他言語でいうところのリストや配列に当たります。10、というように、0始まりの番号を使いますが、R言語では、1始まりの番号を使います。オブジェクトaの最初の要素は、a[1]となります。Rで起動した直後の状態では、aというオブジェクトは存在しません。ありません>aをベクトルとして初期化するには、vector関数を使います。vector()こうすることで、aがベクトルとなりましたので、添え字を使ってアクセス可能となります。Available)(欠損値)になります。30>ベクトル要素の追加は、添え字ではなく、append関数を使った方がよいでしょう。20>ベクトル内の全要素は、同一型となるため、数値しかないベクトルに文字列を追加すると、すべて文字列に変換されます。ベクトルで数列いろんな数列を作ります。10>連番だとこんなに簡単に作れるのに、c()関数はすごく面倒な気がします。R言語を勉強していけば、c()をわざわざ使う意味というのがが分かるのかもしれませんが。20>とても簡単に、ベクトルに格納されている値すべてが2倍されたので、初めて見たときは感動しました。0>あえて短い関数名なんでしょうか。repはrepeatとすぐに想像つきませんでした。8>これも、shuffleじゃないんですね。sampleという関数名は新鮮です。100>もっと良い方法があるのかもしれませんが思いつかず、無名関数を仕方なく使いました。"9">でもこのままでは、ベクトルではなくリストので、unlistを使ってベクトルにします。as.integerは、整数化。9>R言語を使えば、とても簡単に数列生成ができますね。配列もベクトルと同じく入れ物なのですが、次元数が自由に設定できます。配列はarray関数で作ります。NA>値を指定していないので、配列の中は空です。初期値ありで配列を作るには、ベクトルで値を指定すればよいです。12>初期値が配列数よりも少ない場合は、繰り返しパターンで初期化されます。0>次元を指定しないと、一次元配列になります。10>一見ベクトルのように見えますが、これは一次元配列です。is.vector、is.arrayで確認してみましょう。TRUE>配列からベクトルを抽出できます。TRUE>配列の変換をするには、いったんベクトルに戻してから配列を作り直せばよいみたいです。行列ベクトル、配列の次は、行列です。行列の生成にはmatrixを使います。12>行列の掛け算をします。=\]行列の積をするには、%”%を使います。32計算できない行列にすると、このようにエラーがでます。適切な引数ではありません>スカラーとの積は、普通に*を使います。9>別の行列でも確認してみましょう。280>各要素ごとの計算は、四則演算の記号がそのまま使えます。データフレームデータフレームは、いわゆるRDBのテーブルみたいなものですね。Excelの表という覚え方でもいいかもしれません。400>列アクセスは配列のように番号を指定します。400>配列と似てるからといって、勝手に次元を増やしてアクセスできません。うに>列をベクトルで抽出するには、,(カンマ)を指定します。400>行を取り出すには、subset関数を使います。300>SQLのwhere節のようですね。うに>列を増やしてみます。15>priceが300以上のnameとqtyを抽出。表ナンバーズ3は、1994年ぐらいから始まってもう4751回みたいです。私はナンバーズ3ミニをよく買いますが、ミニだと00~99の数字で、毎回100分の1の確率で当たります。00~99までの数字をランダムに4751回発生させると各番号はどれぐらいの頻度になるでしょう。linuxコマンドで頻度表を作ってみます。40takk@deb9:~/tmp$seq,perl,sort,uniq,awk。コマンドがたくさん使われるしコマンドが長いです。R言語の表を使ってみます。53>サンプルデータを作るのは1関数で済みました。49>これも1関数で済みました。なんて簡潔なんでしょう。見栄えは悪いですが、0~99の番号の下の数字が出現頻度です。データフレームの形にして確認してみます。49>R言語は統計解析をするツールなので、簡単にできて当然なのでしょう。リストリストはいろんなオブジェクトを格納できます。e=table(sample(1:10,10)))>このように、ベクトル、配列、行列、データフレーム、表、ごちゃまぜで格納できます。参照は配列のようにアクセスできます。1>[]で参照するときは、リストが返ります。TRUE>元のオブジェクトを取得するには、[[]]を使います。ファイル読み込み1ファイル読み込みします。R起動前に、読み込み用のサンプルファイルを作ります。25takk@deb9:~/r$Rを起動。takk@deb9:~/r$R(省略)>ファイルを読み込んでみます。25>なっ何でしょうか。テキストファイルをそのまま読み込んで文字列で表示してくれると思ってましたが、違うようです。ベクトルなんでしょうか。TRUEベクトルでした。各要素に直接アクセスして元々の1~25という数を取り出せますね。6>数値ではなく元ファイルのように文字列で読み込むにはどうするんでしょうか。what引数にcharacter()を指定します。"25">文字列のベクトルになりました。セパレータを改行にします。sep=”\n”です。"5\t10\t15\t20\t25">これで元ファイルと同じ形ですね。ファイル書き込み1ファイル書き込みです。10takk@deb9:~/r$このように見やすい形でテキストファイルに書き込まれます。毎行書きたい場合は、セパレータを改行にすればよいです。out.txt12345678910takk@deb9:~/r$文字列を書き込むには、writeLinesを使います。out.txtHELLO1HELLO2HELLO3takk@deb9:~/r$ではreadLinesとwriteLinesを使い、ファイルをコピーしてみましょう。25takk@deb9:~/r$sample1.txtとsample2.txtは一致しました。ファイル読み込み2R言語、ファイル読み込み続きです。最初に読み込むファイル作成。25takk@deb9:~/r$read.table()を使い、sample.txtを読み込みます。25>read.table()というぐらいだから、表として読み込まれたと思いましたが、リスト、データフレームのようです。TRUE>アクセスはデータフレーム同様です。12>sample.txtはタブ区切りフォーマットなので、read.delim()も使えます。read.csv()が使えます。samplet.txtは、タブ区切りデータなので、これに使用するとおかしな形で読み込まれます。5\t10\t15\t20\t25>区切り文字がカンマのファイルを読み込んでみます。5>一行目がタイトルになってしまいました。一行目をヘッダーとして扱わないようにheader=FALSEを指定します。5>今度は正しく読めました。見つかりませんでした。email.ホーム2.プログラミング言語2-4.R言語スポンサーリンク広告プロフィール管理人:takketeお仕事:システムエンジニア日々何か向上したくて、もがいています。Policyホーム検索トップサイドバースポンサーリンク広告プロフィール管理人:takketeお仕事:システムエンジニア日々何か向上したくて、もがいています。thanksタイトルとURLをコピーしました。