1 00:00:00,000 --> 00:00:05,691 2 00:00:05,691 --> 00:00:07,690 CONNOR HARRIS:まだ私 いくつかのエキサイティングなビデオを考えます 3 00:00:07,690 --> 00:00:12,570 プロのコンサルタントによって生成 それは、R、その作品に多くを使用しています。 4 00:00:12,570 --> 00:00:16,329 >> ナレーター:統計の背後に何が、 分析、および視覚化 5 00:00:16,329 --> 00:00:19,770 今日の最も明るいデータ科学者 およびビジネスリーダーは頼ります 6 00:00:19,770 --> 00:00:22,012 強力な意思決定を行うには? 7 00:00:22,012 --> 00:00:23,540 あなたはいつもそれを見ていない可能性があります。 8 00:00:23,540 --> 00:00:24,790 しかし、それはあります。 9 00:00:24,790 --> 00:00:29,460 これは、オープンソースはr--と、Rと呼ばれています 統計的なプログラミング言語 10 00:00:29,460 --> 00:00:32,630 そのデータの専門家の世界 すべてのための使用に対する 11 00:00:32,630 --> 00:00:35,350 社会の広範なマッピングから オンライン・マーケティング動向 12 00:00:35,350 --> 00:00:39,210 金融や気候の開発に 我々の経済を後押しモデル 13 00:00:39,210 --> 00:00:40,780 やコミュニティ。 14 00:00:40,780 --> 00:00:44,910 >> しかし、正確にRは何ですか そしてここで、Rは、始めたのですか? 15 00:00:44,910 --> 00:00:48,620 まあ元々、Rが開始しました ここでは2つの教授と 16 00:00:48,620 --> 00:00:51,950 誰がより良い統計を望んでいました 学生のためのプラットフォーム。 17 00:00:51,950 --> 00:00:56,030 そこで、彼らはモデル化されたものを作成しました 統計的言語S.後 18 00:00:56,030 --> 00:01:00,480 彼らは、多くの他の人と一緒に、 上の作業とRを使用したまま、 19 00:01:00,480 --> 00:01:05,489 Rと発見のためのツールを作成します Rのための新しいアプリケーション毎日。 20 00:01:05,489 --> 00:01:07,750 >> これのおかげであります 世界的なコミュニティの努力、 21 00:01:07,750 --> 00:01:11,850 Rは何千もの成長を続け 構築されたユーザーが作成したライブラリの 22 00:01:11,850 --> 00:01:15,500 Rの機能を強化すると クラウドソースの品質の検証 23 00:01:15,500 --> 00:01:19,740 最も認識のサポート あらゆる分野での業界リーダーこと 24 00:01:19,740 --> 00:01:25,040 R.は、素晴らしいですどの使用していますので、 Rは、それが何をするかで最高です。 25 00:01:25,040 --> 00:01:28,540 すぐに専門家を出芽し、 簡単に解釈する、との対話、 26 00:01:28,540 --> 00:01:33,790 その急速示すデータを可視化 世界的なRのユーザーの成長のコミュニティ 27 00:01:33,790 --> 00:01:36,380 どのようにオープンソースを参照してください Rは形を続けて 28 00:01:36,380 --> 00:01:39,340 統計の将来 分析およびデータ科学。 29 00:01:39,340 --> 00:01:44,660 30 00:01:44,660 --> 00:01:47,710 >> CONNOR HARRIS:OK、素晴らしいです。 31 00:01:47,710 --> 00:01:50,360 だから、自分のプレゼンテーション もう少し冷静になります。 32 00:01:50,360 --> 00:01:54,380 それは多くのことを含まれません 刺激的な背景音楽。 33 00:01:54,380 --> 00:01:59,160 あなたがビデオで見たようにしかし、Rは一種であります 汎用のプログラム言語。 34 00:01:59,160 --> 00:02:03,720 しかし、それはほとんどが作成されました 統計処理のために。 35 00:02:03,720 --> 00:02:07,980 >> だから、統計のために設計されています、 データ分析のために、データマイニングのために。 36 00:02:07,980 --> 00:02:12,420 そして、あなたは多くのでこれを見ることができます デザイン選択そのRのメーカー 37 00:02:12,420 --> 00:02:13,320 作られました。 38 00:02:13,320 --> 00:02:15,472 これは、大部分のために設計されています いない人 39 00:02:15,472 --> 00:02:17,930 プログラミングの専門家、人 単にプログラミングを拾っています 40 00:02:17,930 --> 00:02:23,460 側にそのように、彼らは自分の仕事を行うことができます 社会科学や統計で 41 00:02:23,460 --> 00:02:25,440 または何でも。 42 00:02:25,440 --> 00:02:27,850 >> それは非常にたくさん持っています Cからの重要な相違点 43 00:02:27,850 --> 00:02:33,200 構文とパラダイムしかし、 それは広く同じであるを使用します。 44 00:02:33,200 --> 00:02:36,830 そして、あなたはかなり感じるはず すぐさま家でずっと。 45 00:02:36,830 --> 00:02:38,520 これは、命令型言語です。 46 00:02:38,520 --> 00:02:40,260 >> それについてはあまり心配しないでください あなたは用語がわからない場合。 47 00:02:40,260 --> 00:02:42,676 しかし、違いがあります 命令型、宣言型との間に、 48 00:02:42,676 --> 00:02:43,810 機能。 49 00:02:43,810 --> 00:02:47,600 命令型は、ちょうどあなたが作る意味します 基本的にコマンドですステートメント。 50 00:02:47,600 --> 00:02:52,340 そして、通訳または コンピュータはそれらを一つずつに従います。 51 00:02:52,340 --> 00:02:56,630 それは弱く型付けされています、あります R.には型宣言ません 52 00:02:56,630 --> 00:02:59,130 >> そして、ライン 異なるタイプ間 53 00:02:59,130 --> 00:03:03,920 もう少し緩いよりも それらは、例えば、Cです。 54 00:03:03,920 --> 00:03:06,450 そして、私はあると述べているように 非常に大規模な施設 55 00:03:06,450 --> 00:03:15,610 グラフのために、統計のために データマイニングのための分析、。 56 00:03:15,610 --> 00:03:19,540 これらは両方に組み込まれています 言語と、ビデオが言ったように、 57 00:03:19,540 --> 00:03:23,680 そのサードパーティのライブラリの数千人 あなたは無料でダウンロードして使用することができます 58 00:03:23,680 --> 00:03:25,340 非常に緩いライセンス条件。 59 00:03:25,340 --> 00:03:28,800 60 00:03:28,800 --> 00:03:31,500 >> そこで一般的には、私がお勧めします あなたは、これら二冊の本を見ていること 61 00:03:31,500 --> 00:03:34,610 あなたはR.一つで作業するつもりなら 彼らの公式R初心者のです 62 00:03:34,610 --> 00:03:35,110 ガイド。 63 00:03:35,110 --> 00:03:38,660 それはによって維持さです Rのコア開発者 64 00:03:38,660 --> 00:03:42,400 あなたは無料、それを再度ダウンロードすることができます そこにリンクしているページで充電し、合法的に。 65 00:03:42,400 --> 00:03:45,430 66 00:03:45,430 --> 00:03:49,869 これらのすべてのスライドは行くつもりです インターネット上のアップ、CS50のウェブサイトで 67 00:03:49,869 --> 00:03:50,660 この後に行われます。 68 00:03:50,660 --> 00:03:53,690 そう必要はコピーしないように 必死に物事ダウン。 69 00:03:53,690 --> 00:03:56,800 >> 他方であります COSMA Shalizi教科書、 70 00:03:56,800 --> 00:04:00,100 で統計教授は誰なのか カーネギーメロン、高度なデータと呼ばれます 71 00:04:00,100 --> 00:04:02,160 からの分析 ビューの基本ポイント。 72 00:04:02,160 --> 00:04:04,010 これは、主にRの本ではありません。 73 00:04:04,010 --> 00:04:07,130 これは、統計の本だと それはデータ解析本です。 74 00:04:07,130 --> 00:04:11,990 しかし、それは人々に非常にアクセス可能な人 統計知識の少量を持っています。 75 00:04:11,990 --> 00:04:13,750 >> 私は正式なコースを取ったことがありません。 76 00:04:13,750 --> 00:04:17,269 私はビットと作品を知っています 様々な同盟科目から 77 00:04:17,269 --> 00:04:18,579 私はコースを撮影したもの。 78 00:04:18,579 --> 00:04:21,839 そして、私は理解することができました それ完璧に。 79 00:04:21,839 --> 00:04:25,630 >> すべての数値が与えられています RにこれらはRに作られています 80 00:04:25,630 --> 00:04:30,280 そして彼らはまた、コードのリストを持っています 各図の下にあなたを伝えること 81 00:04:30,280 --> 00:04:33,270 どのようにRコードで各図を作ります。 82 00:04:33,270 --> 00:04:37,400 そして、それは場合に非常に便利です あなたがエミュレートしようとしています 83 00:04:37,400 --> 00:04:38,650 あなたは本の中で参照してくださいいくつかの図。 84 00:04:38,650 --> 00:04:47,840 >> そして再び無料ダウンロード 申し訳ありませんstat.cmu.edu/cshalizi/、 85 00:04:47,840 --> 00:04:50,230 それがチルダcshaliziをスラッシュする必要があります。 86 00:04:50,230 --> 00:04:53,150 私はそれを修正することを確認します 公式スライドが上がるとき。 87 00:04:53,150 --> 00:04:57,000 ちょうどである/ ADAfaEPoV 本のタイトルの頭文字。 88 00:04:57,000 --> 00:04:59,850 89 00:04:59,850 --> 00:05:02,500 >> だから、一般caveats-- R 機能をたくさん持っています。 90 00:05:02,500 --> 00:05:05,331 私はカバーできるようにするつもりです 物事の多くの面。 91 00:05:05,331 --> 00:05:08,580 セミナーのも最初の部分 データ・ダンプのようなものになるだろう。 92 00:05:08,580 --> 00:05:11,437 私はそれについて非常に申し訳ありません。 93 00:05:11,437 --> 00:05:13,770 基本的に、私はするつもりです たくさんのことをご紹介 94 00:05:13,770 --> 00:05:15,350 右バット、行きます できるだけ早く。 95 00:05:15,350 --> 00:05:17,058 そして、我々はを取得 ある面白い部分、 96 00:05:17,058 --> 00:05:20,570 私はあなたにすべてを表示することができますデモ 我々は、画面に語られていることを。 97 00:05:20,570 --> 00:05:23,321 そして、あなたは自分で遊ぶことができます。 98 00:05:23,321 --> 00:05:26,070 だから、多くのがあるように起こっています 技術的なものはここに投げ。 99 00:05:26,070 --> 00:05:28,060 すべてのことを下にコピーする心配しないでください。 100 00:05:28,060 --> 00:05:31,740 ので、あなたが得ることができるすべての 後でCS50のウェブサイト上のもの。 101 00:05:31,740 --> 00:05:37,780 そしてBは、それは本当に重要ではありません スライドからこれを記憶します。 102 00:05:37,780 --> 00:05:40,462 それはあなたが得ることがより重要です それにいくつかの直感的な施設 103 00:05:40,462 --> 00:05:44,220 それはちょうど遊んでから来ています。 104 00:05:44,220 --> 00:05:45,720 >> なぜRを使うのか? 105 00:05:45,720 --> 00:05:49,440 基本的には、そのプロジェクトを持っている場合 マイニング大きなデータセット、データを伴います 106 00:05:49,440 --> 00:05:52,664 可視化は、 あなたがしている場合はRを使用する必要があります 107 00:05:52,664 --> 00:05:55,830 複雑な統計分析を行って、 それは、Excelにするのは困難であろうが、 108 00:05:55,830 --> 00:05:58,010 例えば、希望 また、もgood--します 109 00:05:58,010 --> 00:06:00,506 あなたは統計をやっている場合 自動化されています分析。 110 00:06:00,506 --> 00:06:02,130 のは、あなたがウェブサイトを維持しているとしましょう​​。 111 00:06:02,130 --> 00:06:06,320 そして、あなたは、サーバーのログを読みたいです 毎日いくつかのリストをコンパイルし、 112 00:06:06,320 --> 00:06:10,320 トップの国のようなもの ユーザーは、から来ています 113 00:06:10,320 --> 00:06:15,100 どのくらいのいくつかの要約統計 彼らはあなたのウェブサイトまたは何に費やしています。 114 00:06:15,100 --> 00:06:16,910 そして、あなたは毎日、これを実行したいです。 115 00:06:16,910 --> 00:06:20,280 >> 今、あなたがExcelでこれをやっている場合は、 あなたは、あなたのサーバーログに移動する必要があると思います 116 00:06:20,280 --> 00:06:23,490 それをインポートします Excelデータのスプレッドシート、 117 00:06:23,490 --> 00:06:24,910 すべて手動で分析を実行します。 118 00:06:24,910 --> 00:06:27,100 Rを使用すると、一つだけのスクリプトを書くことができます。 119 00:06:27,100 --> 00:06:29,520 毎日実行するようにスケジュール お使いのオペレーティングシステムから。 120 00:06:29,520 --> 00:06:33,657 そして、午前2:00に毎晩、 または、実行するようにスケジュールするたびに、 121 00:06:33,657 --> 00:06:35,990 それはあなたの目を通すます その日のためのインターネットのトラフィック。 122 00:06:35,990 --> 00:06:39,010 そして次の日にすることにより、あなたはよ この光沢のある、新しいレポートを持っています 123 00:06:39,010 --> 00:06:41,710 または何のすべてと あなたが尋ねた情報。 124 00:06:41,710 --> 00:06:44,960 125 00:06:44,960 --> 00:06:50,217 >> だから、基本的にはRは、Ciscoのためであります シスコの分析対プログラミング。 126 00:06:50,217 --> 00:06:51,050 予備的に行われています。 127 00:06:51,050 --> 00:06:53,104 それでは、実際のものに取得してみましょう。 128 00:06:53,104 --> 00:06:55,020 だから、3つの実があります 言語の種類。 129 00:06:55,020 --> 00:06:56,120 数値型があります。 130 00:06:56,120 --> 00:07:01,250 違いのようなものがあります 整数と浮動小数点、 131 00:07:01,250 --> 00:07:02,769 しかし、本当に。 132 00:07:02,769 --> 00:07:04,560 文字があります 文字列であるタイプ。 133 00:07:04,560 --> 00:07:07,100 そして、論理があります ブール値であるタイプ。 134 00:07:07,100 --> 00:07:11,080 >> そして、あなたは型の間で変換することができます 数値としてこれらの機能を使用して、 135 00:07:11,080 --> 00:07:15,220 論理などの文字、など。 136 00:07:15,220 --> 00:07:17,510 あなたが呼び出した場合、例えば、 文字列の数字として、 137 00:07:17,510 --> 00:07:20,030 それは、その文字列を読み取るしようとします 数、同じ方法 138 00:07:20,030 --> 00:07:25,897 そのa2iやscanfんし、Cの場合 真または偽の数字としてあ​​なたを呼び出します 139 00:07:25,897 --> 00:07:26,980 それは、1または0に変換します。 140 00:07:26,980 --> 00:07:29,110 あなたは文字として呼び出す場合 何にもそれはよ 141 00:07:29,110 --> 00:07:32,550 それを変換します 文字列表現。 142 00:07:32,550 --> 00:07:34,990 >> そして、ベクトルと行列があります。 143 00:07:34,990 --> 00:07:37,580 だから、ベクトルは基本的に 1次元配列。 144 00:07:37,580 --> 00:07:40,600 彼らは、私たちが列を呼んでいるものです C.行列、2次元配列。 145 00:07:40,600 --> 00:07:42,350 そして、より高いです 次元配列のことができます。 146 00:07:42,350 --> 00:07:48,560 3、4、5次元を持っているか、どんな 数値の文字列の、 147 00:07:48,560 --> 00:07:52,860 論理値。 148 00:07:52,860 --> 00:07:55,380 >> また、あるリストを持っています 連想配列のようなもの。 149 00:07:55,380 --> 00:07:57,390 私は、そのビットになるでしょう。 150 00:07:57,390 --> 00:07:59,390 だから、一つの重要な事柄 それはRの人々をトリップ 151 00:07:59,390 --> 00:08:01,470 全く存在しないことです 本当、純粋な原子タイプ。 152 00:08:01,470 --> 00:08:05,870 間には実際の区別はありません 数、数値のように、 153 00:08:05,870 --> 00:08:07,920 そして、数値のリスト。 154 00:08:07,920 --> 00:08:12,370 数値は実際にあります 長さ1のベクトルと同じ。 155 00:08:12,370 --> 00:08:14,959 そして、これは数を持っています 重要な意味。 156 00:08:14,959 --> 00:08:17,500 一つは、それはあなたが行うことができることを意味 非常に簡単なものを伴います 157 00:08:17,500 --> 00:08:21,037 ベクトルに番号を追加することなどです。 158 00:08:21,037 --> 00:08:23,120 Rは、基本的には図意志 アウトあなたはそれによって何を意味します。 159 00:08:23,120 --> 00:08:24,610 そして、私は2番目のものになるでしょう。 160 00:08:24,610 --> 00:08:27,930 また、方法がないことを意味し タイプの程度にchecker-- 161 00:08:27,930 --> 00:08:30,530 そのようなこと、何か 教えてr--の中に存在します 162 00:08:30,530 --> 00:08:33,780 あなたは、単一の値で渡されてきたとき、 それは、配列、またはその逆を期待するとき。 163 00:08:33,780 --> 00:08:39,159 そして、それはいくつかの奇妙を引き起こす可能性があります ときに私が走ったトラブル 164 00:08:39,159 --> 00:08:42,252 私は私の夏の仕事中にRを使用していました。 165 00:08:42,252 --> 00:08:43,710 そして、何の混在型の配列はありません。 166 00:08:43,710 --> 00:08:46,543 だから、配列があったことはできません 最初の要素は、私は知らないが、 167 00:08:46,543 --> 00:08:49,332 文字列 "ジョン"と 2番目の要素は数42です。 168 00:08:49,332 --> 00:08:52,540 あなたがそれをしようとした場合は、取得します すべては単なる文字列に変換されます。 169 00:08:52,540 --> 00:08:54,760 だから我々は文字列ジョン、文字列42を有しています。 170 00:08:54,760 --> 00:08:58,250 171 00:08:58,250 --> 00:09:02,025 >> 最もfeatures--そう珍しい統語 Rの構文はCに非常に似ています 172 00:09:02,025 --> 00:09:04,690 いくつかの重要な違いがあります。 173 00:09:04,690 --> 00:09:05,620 タイピングは非常に弱いです。 174 00:09:05,620 --> 00:09:07,360 だから、何の変数宣言はありません。 175 00:09:07,360 --> 00:09:12,670 割り当ては奇妙なを使用しています エラーオペレータハイフン未満。 176 00:09:12,670 --> 00:09:15,340 コメントはハッシュマークです。 177 00:09:15,340 --> 00:09:19,230 私は今日は、我々はハッシュタグを呼び出すと思います それは本当にないのですけれどもありませんaccurate-- 178 00:09:19,230 --> 00:09:21,810 ダブルスラッシュ。 179 00:09:21,810 --> 00:09:24,710 >> モジュラー残基は%%記号です。 180 00:09:24,710 --> 00:09:30,172 整数の除算は、%/%です それが投影だときに非常に読み難しいです 181 00:09:30,172 --> 00:09:30,880 画面上にアップ。 182 00:09:30,880 --> 00:09:34,150 183 00:09:34,150 --> 00:09:37,200 あなたは、の範囲を得ることができます コロンと整数。 184 00:09:37,200 --> 00:09:41,840 だから、2,5はあなたにベクトルを与えます すべての番号2〜5の。 185 00:09:41,840 --> 00:09:44,530 >> 配列は一インデックス化され、 これはネジ多くの人 186 00:09:44,530 --> 00:09:47,540 彼らはより多くのならアップ 一般的なプログラミング言語、 187 00:09:47,540 --> 00:09:50,450 ほとんどのCのような 物事はゼロインデックス付きです。 188 00:09:50,450 --> 00:09:54,420 繰り返しますが、これはRの遺産 ないようにするための言語として、 189 00:09:54,420 --> 00:09:56,560 プロのプログラマは入って来。 190 00:09:56,560 --> 00:09:59,680 あなたは社会学者をしている場合、または 経済学者か何か 191 00:09:59,680 --> 00:10:01,980 あなたが使用しようとしています 基本的には補助剤としてR 192 00:10:01,980 --> 00:10:03,832 あなたのより重要に プロの仕事、 193 00:10:03,832 --> 00:10:06,040 あなたが見つけるつもりです もう少し自然なワンインデックスします。 194 00:10:06,040 --> 00:10:09,890 あなたがカウントを開始するので 日常生活の中で1、0ありませんで。 195 00:10:09,890 --> 00:10:13,260 >> forループ、これは次のようになり PHPのforeach構文、 196 00:10:13,260 --> 00:10:17,090 あなたが買ってあげるします かなりすぐin--学びます。 197 00:10:17,090 --> 00:10:22,540 どちらがベクトルの値のためのものであり、 あなたが値を持つことを行うことができます。 198 00:10:22,540 --> 00:10:24,040 聴衆:講義に来ています。 199 00:10:24,040 --> 00:10:26,248 CONNOR HARRIS:ああ、それはです 優れた、講義を思い付きます。 200 00:10:26,248 --> 00:10:29,815 聴衆:割り当て、それは 右から左に指すようになって? 201 00:10:29,815 --> 00:10:31,440 CONNOR HARRIS:右から左に、はい。 202 00:10:31,440 --> 00:10:34,720 あなたは上の値と考えることができます 変数に押し込んだ右側 203 00:10:34,720 --> 00:10:36,240 左に。 204 00:10:36,240 --> 00:10:36,781 聴衆:[OK]をクリックします。 205 00:10:36,781 --> 00:10:39,770 206 00:10:39,770 --> 00:10:42,330 >> CONNOR HARRIS:そして最後に 関数の構文は少し奇妙です。 207 00:10:42,330 --> 00:10:48,460 あなたが割り当てられ、関数fooという名前を持っています このキーワード関数に続き、 208 00:10:48,460 --> 00:10:51,530 その後、すべての引数とすることにより その後の関数の本体。 209 00:10:51,530 --> 00:10:53,280 再び、これらの事はよいです 少し奇妙に思えます。 210 00:10:53,280 --> 00:10:57,181 彼らは後に第二の天性になるでしょう あなたは少しの言語で動作します。 211 00:10:57,181 --> 00:10:58,930 ベクトルだから、道 あなたはベクターを構築 212 00:10:58,930 --> 00:11:04,550 キーワードであるあなたのタイプCは、その後、あります すべての希望する数値または文字列 213 00:11:04,550 --> 00:11:06,490 または何でも。 214 00:11:06,490 --> 00:11:07,995 引数もベクトルで。 215 00:11:07,995 --> 00:11:09,620 しかし、結果の配列は、平坦化されます。 216 00:11:09,620 --> 00:11:14,385 だから、どこの配列を持つことができません いくつかの要素は、単一の数値であります 217 00:11:14,385 --> 00:11:17,010 そして、いくつかの要素は配列そのものです。 218 00:11:17,010 --> 00:11:20,010 >> あなたが構築しようとするのであれば 配列は、最初の要素であった4 219 00:11:20,010 --> 00:11:22,370 第2要素 アレイ3,5は、あなたがよです 220 00:11:22,370 --> 00:11:25,890 ただ、4,3,5の三つの要素の配列を取得。 221 00:11:25,890 --> 00:11:27,760 彼らは、混合型にすることはできません。 222 00:11:27,760 --> 00:11:32,290 あなたは、読み取りまたは書き込みをしようとした場合 ベクトルの境界の外 223 00:11:32,290 --> 00:11:36,640 あなたは、NAのAと呼ばれるこの値を取得します これは欠損値を表しています。 224 00:11:36,640 --> 00:11:39,900 そして、これはするためのものです 統計学者のような人 225 00:11:39,900 --> 00:11:43,080 不完全なデータセットで作業しています。 226 00:11:43,080 --> 00:11:46,460 >> あなたははずの関数を適用した場合 配列に一つだけの数を取ります 227 00:11:46,460 --> 00:11:49,220 その後、何を買ってあげることは、あります 関数は、配列の上にマップされます。 228 00:11:49,220 --> 00:11:52,130 だからあなたの関数がのがかかるとしましょう​​場合 数と四角それを返します。 229 00:11:52,130 --> 00:11:58,170 あなたは、配列2,3,5にそれを適用します あなたは何を得るでしょう、アレイ4,9,25です。 230 00:11:58,170 --> 00:12:00,010 >> そして、それは非常に便利です それはあなたを意味するので 231 00:12:00,010 --> 00:12:03,374 以下のためのループを記述する必要はありません 適用のような非常に単純なことをやって 232 00:12:03,374 --> 00:12:05,040 データセットのすべてのメンバーに機能しています。 233 00:12:05,040 --> 00:12:08,557 あなたはどちら大で作業している場合 データセットは、あなたは多くのことを行う必要があります。 234 00:12:08,557 --> 00:12:10,390 バイナリの機能があります エントリごとに適用されます。 235 00:12:10,390 --> 00:12:12,430 私はそれに入るでしょう。 236 00:12:12,430 --> 00:12:16,750 あなたは配列でそれらにアクセスすることができます または角括弧を有するベクター。 237 00:12:16,750 --> 00:12:22,300 だから、ベクトル名角括弧1 あなたの最初の要素を提供します。 238 00:12:22,300 --> 00:12:25,510 ベクトル名角括弧2 あなたの二番目の要素を提供します。 239 00:12:25,510 --> 00:12:27,530 >> あなたはベクトルに渡すことができます および指標のあなたはよ 240 00:12:27,530 --> 00:12:29,640 バックは基本的にサブ要因出ます。 241 00:12:29,640 --> 00:12:34,990 だから、ベクトル名ブラケットCを行うことができますが、2,4 あなたが含むベクトルを取得します 242 00:12:34,990 --> 00:12:38,804 第二及び第四 配列の要素。 243 00:12:38,804 --> 00:12:40,720 そして、あなたがしたい場合だけ 簡単な要約統計量 244 00:12:40,720 --> 00:12:47,529 四分位のようなベクトルの 範囲、中央値、最大値、何でも、 245 00:12:47,529 --> 00:12:49,820 あなただけの概要を入力することができます ベクトル名とそれを出します。 246 00:12:49,820 --> 00:12:52,680 これは本当に便利ではありません プログラミングができますが、演奏している場合 247 00:12:52,680 --> 00:12:55,990 データセットの周りに、それは便利です。 248 00:12:55,990 --> 00:12:58,650 >> 基本的にMatrices-- 高次元の配列。 249 00:12:58,650 --> 00:13:01,190 彼らは、この特別な表記構文を持っています。 250 00:13:01,190 --> 00:13:07,620 取得配列と行列 データで申し訳ありませんが、マトリックスin--満たし、 251 00:13:07,620 --> 00:13:09,780 行数、列数。 252 00:13:09,780 --> 00:13:13,180 いくつかのデータがある場合は、で埋め 配列は、基本的に上から下に行きます 253 00:13:13,180 --> 00:13:13,380 最初。 254 00:13:13,380 --> 00:13:14,190 そして、左から右へ。 255 00:13:14,190 --> 00:13:15,030 そこで、そのような。 256 00:13:15,030 --> 00:13:17,809 257 00:13:17,809 --> 00:13:19,600 そしてRが組み込まれてい 行列乗算、 258 00:13:19,600 --> 00:13:24,310 スペクトル分解、 対角化、たくさんのこと。 259 00:13:24,310 --> 00:13:27,785 あなたは、より高い次元の場合 アレイ、SO 3、4、5、 260 00:13:27,785 --> 00:13:29,410 または任意の大きさ、あなたはそれを行うことができます。 261 00:13:29,410 --> 00:13:34,400 構文は配列の薄暗いあるCに等しく、 その後、ディメンションのリスト。 262 00:13:34,400 --> 00:13:38,620 ですから、4次元配列をしたい場合 寸法4、7、8、9、配列と、 263 00:13:38,620 --> 00:13:45,470 DIMは、c(4,7,8,9)に等しいです。 264 00:13:45,470 --> 00:13:51,180 >> あなたは括弧を持つ単一の値にアクセス 2番目のエントリカンマ最初のエントリ。 265 00:13:51,180 --> 00:13:54,870 あなたは全体のスライスを得ることができます 行または列の。 266 00:13:54,870 --> 00:13:59,900 この不完全な構文で、それはです ちょうど数コンマまたはカンマ列を行 267 00:13:59,900 --> 00:14:00,400 数。 268 00:14:00,400 --> 00:14:02,874 269 00:14:02,874 --> 00:14:04,540 だからリストは、関連するアレイの一種です。 270 00:14:04,540 --> 00:14:06,360 彼らはここで自分の構文を持っています。 271 00:14:06,360 --> 00:14:08,320 ここでも必死ありません このすべてを下にコピーします。 272 00:14:08,320 --> 00:14:11,370 これは、ちょうどそのように人々 後でスライドを通過 273 00:14:11,370 --> 00:14:13,089 すべての素敵な参考文献でこれを持っています。 274 00:14:13,089 --> 00:14:16,130 そして、これは非常に自然に一度になります 私は実際にデモを歩きます。 275 00:14:16,130 --> 00:14:19,295 276 00:14:19,295 --> 00:14:20,920 したがって、基本的に関連した配列を示しています。 277 00:14:20,920 --> 00:14:27,040 あなたが使用して値にアクセスすることができます リスト名、ドル記号、キー。 278 00:14:27,040 --> 00:14:31,370 だからあなたのリストがfooという名前が付けられている場合、 その後、あなたはそのようにそれにアクセスすることができます。 279 00:14:31,370 --> 00:14:37,032 あなたは全体のキーと値のペアを取得することができます 角括弧インデックスを渡すこともできます。 280 00:14:37,032 --> 00:14:39,240 あなたは存在しないから読み込む場合 キー、あなたはnullを取得します。 281 00:14:39,240 --> 00:14:41,150 これはエラーではないでしょう。 282 00:14:41,150 --> 00:14:43,590 シングは、Rのように行います、です それができるようにnullを指定してはるかに。 283 00:14:43,590 --> 00:14:46,580 そして、これはあなたがしている場合ことを意味します ヌル出ることを期待していません 284 00:14:46,580 --> 00:14:51,840 いくつかのリストの読み込みのため、あなたには、いくつかを取得します さらにダウン予測不能なエラー 285 00:14:51,840 --> 00:14:52,620 ライン。 286 00:14:52,620 --> 00:14:54,890 >> これは私に起こった私の 私はRを使用していた夏の仕事 287 00:14:54,890 --> 00:14:58,410 私はどのように特定の変更場所 リストには、一つの場所で定義されていました 288 00:14:58,410 --> 00:15:05,410 しかし、後に変化しませんでした それから値を読み取ったコード。 289 00:15:05,410 --> 00:15:10,190 だから何が起こったことは、私がありました このリストの中からNULL値を読み、 290 00:15:10,190 --> 00:15:13,090 関数に渡します、 そして、非常に混乱しています 291 00:15:13,090 --> 00:15:16,000 私は、あらゆる種類のを得たとき アップトリミングランダム無限大 292 00:15:16,000 --> 00:15:16,790 この機能インチ 293 00:15:16,790 --> 00:15:20,730 あなたが特定の最大値を適用した場合ので、 または最低限の機能はNULLに、 294 00:15:20,730 --> 00:15:22,570 あなたは無限の値を取得します。 295 00:15:22,570 --> 00:15:26,400 296 00:15:26,400 --> 00:15:29,180 >> データフレームは、それらがリストのサブクラスです。 297 00:15:29,180 --> 00:15:31,170 すべての値はベクトルです 同じ長さの。 298 00:15:31,170 --> 00:15:34,220 そして、彼らが提示するために使用されています、 基本的には、データテーブル。 299 00:15:34,220 --> 00:15:36,175 この初期化構文があります。 300 00:15:36,175 --> 00:15:38,800 これは、すべて、再び、はるかになります あなたはデモに得るときより明確。 301 00:15:38,800 --> 00:15:42,240 302 00:15:42,240 --> 00:15:44,240 そして、いいところ データフレームは、あなたのことです 303 00:15:44,240 --> 00:15:49,380 すべての列に名前を与えることができます そして、すべての行に名前。 304 00:15:49,380 --> 00:15:53,890 そして、そのためには、アクセスさせます それらビット友好。 305 00:15:53,890 --> 00:15:59,130 また、これはどのようにほとんどの機能であります Excelスプレッドシートからデータを読み込みます 306 00:15:59,130 --> 00:16:03,820 またはテキストフ​​ァイルから、例えば、 そのデータに読み込みます。 307 00:16:03,820 --> 00:16:07,555 彼らはに入れましょう データフレームのいくつかの並べ替え。 308 00:16:07,555 --> 00:16:09,680 だから、機能をfunctions-- 構文は少し奇妙です。 309 00:16:09,680 --> 00:16:16,160 やはりそれは関数の名前です、 その後、このキーワードの機能を割り当て、 310 00:16:16,160 --> 00:16:17,900 引数のリスト。 311 00:16:17,900 --> 00:16:24,080 だから、いくつかの素晴らしいものがあります 関数がここでどのように機能するかについて。 312 00:16:24,080 --> 00:16:28,170 一つは、あなたが実際に割り当てることができます 特定の引数にデフォルト値。 313 00:16:28,170 --> 00:16:32,910 だから、R1を言うことができます あなたはFOOを言うことができますequals-- 314 00:16:32,910 --> 00:16:38,290 R1が何かに等しい関数であります ユーザーが指定した場合、デフォルトで 315 00:16:38,290 --> 00:16:39,090 引数はありません。 316 00:16:39,090 --> 00:16:41,932 そうでなければ、それは彼が入れ何でもです。 317 00:16:41,932 --> 00:16:44,140 そして、これは非常に便利です なぜなら私たちの多くの機能 318 00:16:44,140 --> 00:16:47,910 多くの場合、数十を持っていますか、 引数の数百人。 319 00:16:47,910 --> 00:16:51,210 プロットするための例えばもの グラフやプロット散布図 320 00:16:51,210 --> 00:16:54,430 コントロールの引数を持っています タイトルと軸からすべて 321 00:16:54,430 --> 00:16:59,512 回帰直線の色とラベル。 322 00:16:59,512 --> 00:17:01,470 そして、あなたがしたくない場合 人々は特定作ります 323 00:17:01,470 --> 00:17:04,050 これらのすべての単一の1 引数の数百 324 00:17:04,050 --> 00:17:07,674 のあらゆる局面を制御します プロットまたは退行または何、 325 00:17:07,674 --> 00:17:09,299 それは、これらのデフォルト値を持つことがうれしいです。 326 00:17:09,299 --> 00:17:12,700 327 00:17:12,700 --> 00:17:19,146 >> そして、あなたが実際にすることができます あなたはここに戻って見たように記述します。 328 00:17:19,146 --> 00:17:22,869 または、より良い例を見つけます。 329 00:17:22,869 --> 00:17:28,690 あなたが関数を呼び出すときには、実際にすることができます 引数名を使用して、それらを呼び出します。 330 00:17:28,690 --> 00:17:33,919 だからここの例を示します。 行列のコンストラクタ。 331 00:17:33,919 --> 00:17:34,960 それは3つの引数を取ります。 332 00:17:34,960 --> 00:17:36,760 通常は、データを持っています、 これはベクトルです。 333 00:17:36,760 --> 00:17:38,920 N個の列を有しています 行の数です。 334 00:17:38,920 --> 00:17:41,160 あなたは、Nは列数をcols--持っています。 335 00:17:41,160 --> 00:17:43,920 あなたが入力した場合のものであり、 N個の行に等しいものは何でも 336 00:17:43,920 --> 00:17:46,520 N colがどのようなときに等しいです あなたは、この関数を呼び出しています 337 00:17:46,520 --> 00:17:47,770 あなたは実際にそれらを逆にすることができます。 338 00:17:47,770 --> 00:17:51,590 だから、最初のN COLおよびN行を置くことができます 第二、それは違いはありません。 339 00:17:51,590 --> 00:17:54,660 だから、ちょっといい機能です。 340 00:17:54,660 --> 00:17:56,260 >> インポートおよびエクスポートを行いました。 341 00:17:56,260 --> 00:18:00,010 これは基本的に、行うことができます。 342 00:18:00,010 --> 00:18:03,816 書き出す施設もあります。 任意のRはバイナリファイルにオブジェクト 343 00:18:03,816 --> 00:18:05,190 そしてその後でそれらを読み戻します。 344 00:18:05,190 --> 00:18:08,030 あなたがやっている場合に便利です 大きな対話型セッションR 345 00:18:08,030 --> 00:18:12,850 あなたが保存する必要があります 物事は非常に迅速に。 346 00:18:12,850 --> 00:18:16,460 デフォルトでは、Rは作業ディレクトリを持っています ファイルがに出て書き込まれますことを 347 00:18:16,460 --> 00:18:19,410 から読み戻します。 348 00:18:19,410 --> 00:18:22,350 あなたがそれを見ることができます getwg、setdwでそれを変更します。 349 00:18:22,350 --> 00:18:25,630 ここで特に興味深いのは何もありません 350 00:18:25,630 --> 00:18:28,270 >> だから今実際の統計 多重線形回帰をstuff--。 351 00:18:28,270 --> 00:18:30,960 352 00:18:30,960 --> 00:18:34,910 だからいつもの構文 少し複雑です。 353 00:18:34,910 --> 00:18:37,260 モデルは基本的に大きなオブジェクトです。 354 00:18:37,260 --> 00:18:39,910 これは、フィルムに割り当てられます、 これは関数呼び出しです。 355 00:18:39,910 --> 00:18:43,840 最初の要素、Y チルダX1プラス何でも。 356 00:18:43,840 --> 00:18:46,574 357 00:18:46,574 --> 00:18:47,990 ここに私の構文は少し混乱するかもしれません。 358 00:18:47,990 --> 00:18:49,490 私は、この非常に申し訳ありません 標準的な方法です 359 00:18:49,490 --> 00:18:50,990 そのコンピュータ科学の本はこれを行います。 360 00:18:50,990 --> 00:18:54,890 しかし、それは少し奇妙です。 361 00:18:54,890 --> 00:18:58,200 >> したがって、基本的に、それはLMです 括弧、最初の項目 362 00:18:58,200 --> 00:19:06,730 申し訳ありませんvariable--され、依存 変数チルダX1プラス×2プラス 363 00:19:06,730 --> 00:19:10,910 しかし、多くの独立 あなたが持っている変数。 364 00:19:10,910 --> 00:19:14,240 そして、これらは、いずれかになります ベクトル、すべて同じ長さ。 365 00:19:14,240 --> 00:19:16,220 それとも、1列になります データフレームのヘッダー 366 00:19:16,220 --> 00:19:18,553 あなただけで指定すること 第二引数のデータフレーム。 367 00:19:18,553 --> 00:19:23,270 368 00:19:23,270 --> 00:19:26,380 >> 指定することもできます より複雑な式 369 00:19:26,380 --> 00:19:31,990 あなたは直線的にする必要はありません 1つの従属変数を退行、 370 00:19:31,990 --> 00:19:34,440 または既存のベクター上の1のベクトル。 371 00:19:34,440 --> 00:19:38,070 あなたは、例えば、Aを行うことができます ベクター成分y二乗プラス1 372 00:19:38,070 --> 00:19:42,100 そして、反対のことを退行 いくつかの他のベクターのログ。 373 00:19:42,100 --> 00:19:45,200 あなたはの要約を印刷することができます 呼ばれるこのコマンドを使用して、モデル 374 00:19:45,200 --> 00:19:48,607 ただ要約モデルを括弧summary--。 375 00:19:48,607 --> 00:19:50,190 再び私は明確にすべき何か他のもの。 376 00:19:50,190 --> 00:19:55,407 377 00:19:55,407 --> 00:19:58,615 修正されてしまいます何か他のもの スライドは、インターネット上に行くとき。 378 00:19:58,615 --> 00:20:01,127 379 00:20:01,127 --> 00:20:03,210 あなただけ計算したい場合 単純相関 380 00:20:03,210 --> 00:20:09,170 あなたは相関ベクトルを使用することができます 1ベクトル2機能コア。 381 00:20:09,170 --> 00:20:11,856 メソッドはデフォルトで ピアソン相関。 382 00:20:11,856 --> 00:20:13,480 それらはあなたが行うことができます標準的なものです。 383 00:20:13,480 --> 00:20:15,990 そこもスピアマンと Kendell相関 384 00:20:15,990 --> 00:20:19,530 いくつかの多様です 順位相関。 385 00:20:19,530 --> 00:20:23,600 まあ、彼らは製品を計算しません。 ベクトル自体の間の瞬間、 386 00:20:23,600 --> 00:20:28,511 しかし、ベクトルの順位注文。 387 00:20:28,511 --> 00:20:29,510 私は後で説明します。 388 00:20:29,510 --> 00:20:30,120 >> 聴衆:クイック質問 389 00:20:30,120 --> 00:20:30,360 >> CONNER HARRIS:確かに。 390 00:20:30,360 --> 00:20:33,151 >> 聴衆:だから、計算しています 単純な相関を行うために 391 00:20:33,151 --> 00:20:37,655 あなたは、統計があることを前提としてい 相関の意義? 392 00:20:37,655 --> 00:20:39,030 CONNER HARRIS:あなたがする必要はありません。 393 00:20:39,030 --> 00:20:41,840 394 00:20:41,840 --> 00:20:43,960 LMは、基本的にはマシンです。 395 00:20:43,960 --> 00:20:47,690 それは二つのことになります それが吐き出すます 396 00:20:47,690 --> 00:20:49,770 最良適合線のための係数。 397 00:20:49,770 --> 00:20:52,310 また、標準レポート これらの係数でのエラー。 398 00:20:52,310 --> 00:20:55,865 であるようにそしてそれは、あなたを教えてくれます 統計学的に有意なインターセプト 399 00:20:55,865 --> 00:20:56,740 または0との違い。 400 00:20:56,740 --> 00:20:59,400 最善の傾きであります フィットライン統計的に 401 00:20:59,400 --> 00:21:01,510 ゼロとは異なる、エトセトラ。 402 00:21:01,510 --> 00:21:06,260 だから、私が思うに、何を負うものではありません あなたの質問に対する最良の答えです。 403 00:21:06,260 --> 00:21:07,410 OK。 404 00:21:07,410 --> 00:21:14,650 >> あなたがすべきPlotting--ので、主な理由 多重線形回帰のように、Rを使用します。 405 00:21:14,650 --> 00:21:17,320 基本的にすべての言語 そのためのいくつかの施設があります。 406 00:21:17,320 --> 00:21:21,365 そしてのための正直Rの構文 回帰は少し難解です。 407 00:21:21,365 --> 00:21:22,990 それは本当に輝いてどこでもプロットです。 408 00:21:22,990 --> 00:21:28,090 >> 働き者機能はプロットであります それは2つのベクトルxとyを取ります。 409 00:21:28,090 --> 00:21:33,010 そして、楕円は非常にの略 オプションの引数の数が多いこと 410 00:21:33,010 --> 00:21:39,190 タイトルから色にすべてをコントロール さまざまな線や様々なポイントの、 411 00:21:39,190 --> 00:21:40,200 プロットのタイプに。 412 00:21:40,200 --> 00:21:42,250 あなたが散乱を持つことができます プロットやラインプロット。 413 00:21:42,250 --> 00:21:47,900 414 00:21:47,900 --> 00:21:49,710 >> [聞こえない] 2ベクトル 同じ長さの。 415 00:21:49,710 --> 00:21:53,780 あなたは添付して、これを先行することができます スクリプト内のデータフレーム。 416 00:21:53,780 --> 00:22:01,220 そして、これはあなただけの列を使用できるようになります 代わりに、別個のベクターのヘッダ。 417 00:22:01,220 --> 00:22:05,410 あなたは最高のフィットラインとローカルを追加することができます グラフに回帰曲線。 418 00:22:05,410 --> 00:22:09,390 >> これらのコマンドは、リストされています ここで、ABラインとライン、 419 00:22:09,390 --> 00:22:11,640 デフォルトでは、これらが取得します ポップアップウィンドウに書き込ま 420 00:22:11,640 --> 00:22:15,560 それがことを前提としているため あなたが対話的にRを使用しています。 421 00:22:15,560 --> 00:22:17,310 あなたがいないなら次のことができます その2つのファイルを書き込みます 422 00:22:17,310 --> 00:22:21,600 あなたが好きな、本当に任意の形式になっています。 423 00:22:21,600 --> 00:22:25,410 申し訳ありませんが、私はちょうど実現誤植があります。 424 00:22:25,410 --> 00:22:30,887 425 00:22:30,887 --> 00:22:32,720 あなたが開く場合 別のグラフィックデバイス 426 00:22:32,720 --> 00:22:39,200 あなたはPNGまたはと呼ばれるこの機能を使用することができます JPEGまたは他の画像形式がたくさん。 427 00:22:39,200 --> 00:22:42,319 そして、あなたはにグラフを書くことができます どのようなファイル名は指定します。 428 00:22:42,319 --> 00:22:45,110 あなたがuse--する必要があることをキャンセルするには 私はslide--でこれを書いていません 429 00:22:45,110 --> 00:22:49,650 しかし、DEVと呼ばれる機能があります そのオフドットは引数を取りません。 430 00:22:49,650 --> 00:22:51,517 >> その後、施設があります 3Dプロットのための 431 00:22:51,517 --> 00:22:53,350 輪郭のためのプロット あなたがしたい場合は 432 00:22:53,350 --> 00:22:55,700 2つの独立変数のグラフ。 433 00:22:55,700 --> 00:22:57,150 私は今、これらの中に取得することはできません。 434 00:22:57,150 --> 00:22:59,130 >> 一部もあります アニメーションのための施設 435 00:22:59,130 --> 00:23:01,300 それらは通常、 第三者によって維持。 436 00:23:01,300 --> 00:23:06,330 私はRのグラフにアニメーションを行っています、 私はこれらのサードパーティを使用していません 437 00:23:06,330 --> 00:23:06,940 ライブラリ。 438 00:23:06,940 --> 00:23:09,929 だから私は本当に証明することができません 彼らはどのように良いに。 439 00:23:09,929 --> 00:23:12,220 何がしたい場合私はお勧め Rを使用してアニメーションを作るために 440 00:23:12,220 --> 00:23:16,480 あなたはすべてを書き出すことができますされています アニメーションのためのフレーム 441 00:23:16,480 --> 00:23:18,470 そして、あなたは使用することができます 第三者program-- 442 00:23:18,470 --> 00:23:23,630 代表的なものはFFmpegのと呼ばれています またはImageMagick--はステッチします 443 00:23:23,630 --> 00:23:26,540 1アニメーションにあなたのすべてのフレーム。 444 00:23:26,540 --> 00:23:28,380 >> だから、デモのための時間。 445 00:23:28,380 --> 00:23:31,030 446 00:23:31,030 --> 00:23:37,189 ですから、システムのように、あらゆるUnixを使っている場合 これはLinuxのBSDですが、誰が、BSDを使用しています。 447 00:23:37,189 --> 00:23:39,730 OS Xは、ターミナルウィンドウを開き、 コマンドプロンプトでタイプR。 448 00:23:39,730 --> 00:23:42,820 あなたがRのスタジオを持っている場合、または また働くような、。 449 00:23:42,820 --> 00:23:46,270 Windowsユーザーのためにあなたがすべきです スタートメニュー内にRを見つけることができます。 450 00:23:46,270 --> 00:23:50,390 それは何かと呼ばれるべきです どんなR x64の3点などです。 451 00:23:50,390 --> 00:23:53,110 そこにそれを開きます。 452 00:23:53,110 --> 00:23:58,850 >> だから今ちょうど私を聞かせて ターミナルウィンドウを開きます。 453 00:23:58,850 --> 00:24:02,562 すべての権利、検索。 454 00:24:02,562 --> 00:24:03,520 聴衆:コマンドスペース 455 00:24:03,520 --> 00:24:06,675 CONNER HARRIS:コマンドスペースは、ありがとうございました。 456 00:24:06,675 --> 00:24:10,030 私は普通のMacを使用しません。 457 00:24:10,030 --> 00:24:13,310 ターミナルは、新しいウィンドウが表示されます。 458 00:24:13,310 --> 00:24:18,120 新しいウィンドウが設定され あなたが得る必要がありますので、R.、基本 459 00:24:18,120 --> 00:24:22,230 ウェルカムメッセ​​ージ、次のようなもの。 460 00:24:22,230 --> 00:24:31,060 >> だから私は、対話的にRを使用しています。 461 00:24:31,060 --> 00:24:32,719 また、当然のRスクリプトを書くことができます。 462 00:24:32,719 --> 00:24:34,510 基本的にスクリプトを実行 全く同じ方法で 463 00:24:34,510 --> 00:24:40,250 あなたがコンピュータの前に座っていた場合 一度にすべての行1を入力。 464 00:24:40,250 --> 00:24:42,660 それでは、ベクトルを作ることから始めましょう。 465 00:24:42,660 --> 00:24:46,230 矢印C 1、2。 466 00:24:46,230 --> 00:24:49,400 1、2、4。 467 00:24:49,400 --> 00:24:50,050 [OK]を、確認してください。 468 00:24:50,050 --> 00:24:51,630 私は、フォントサイズを大きくすることができます。 469 00:24:51,630 --> 00:24:53,030 >> 聴衆:コマンドプラス 470 00:24:53,030 --> 00:24:53,650 >> CONNER HARRIS:コマンドプラス。 471 00:24:53,650 --> 00:24:54,191 コマンドプラス。 472 00:24:54,191 --> 00:24:57,610 473 00:24:57,610 --> 00:25:00,370 すべての権利、それがどのようにですか? 474 00:25:00,370 --> 00:25:00,870 良い? 475 00:25:00,870 --> 00:25:01,551 OK。 476 00:25:01,551 --> 00:25:03,300 それでは始めましょう ベクトルリストを宣言する。 477 00:25:03,300 --> 00:25:08,710 、矢印、C 1,2,4を実行してください。 478 00:25:08,710 --> 00:25:11,181 私たちは見ることができます。 479 00:25:11,181 --> 00:25:12,680 そこにブラケットを心配しないでください。 480 00:25:12,680 --> 00:25:18,590 あなたがプリントアウトした場合、ブラケットはそうです 非常に長い配列、我々はあなたがどこにいることができます。 481 00:25:18,590 --> 00:25:26,987 私場合は、1つの例は以下のようになります わずか200の範囲2をしたいです。 482 00:25:26,987 --> 00:25:28,820 私は非常に印刷した場合 長い配列、括弧 483 00:25:28,820 --> 00:25:31,060 ちょうどので、私は続けることができています トラックどのインデックスの 484 00:25:31,060 --> 00:25:33,250 私が探していた場合、私たちは上にいます この視覚を通して。 485 00:25:33,250 --> 00:25:36,570 486 00:25:36,570 --> 00:25:38,280 だからとにかく、私たちは持っています。 487 00:25:38,280 --> 00:25:43,326 >> だから私は、その配列が相互作用する前に言いました 非常にきれいで、例えば、 488 00:25:43,326 --> 00:25:44,450 このような単項演算。 489 00:25:44,450 --> 00:25:46,500 だから、私はと思うもの 私はプラス1を入力した場合のですか? 490 00:25:46,500 --> 00:25:49,630 491 00:25:49,630 --> 00:25:51,140 うん。 492 00:25:51,140 --> 00:25:54,250 右、今私が作ってあげます この別の配列。 493 00:25:54,250 --> 00:26:01,650 それでは、B、C 20,40、80を言ってみましょう。 494 00:26:01,650 --> 00:26:03,400 それで、あなたはどう思いますか このコマンドは何だろうか? 495 00:26:03,400 --> 00:26:09,962 496 00:26:09,962 --> 00:26:10,670 要素を追加します。 497 00:26:10,670 --> 00:26:14,950 だから基本的には、それはそれが何をするかです。 498 00:26:14,950 --> 00:26:16,740 だから、これはかなり便利です。 499 00:26:16,740 --> 00:26:23,800 だから私は方法については、私はこれを行います。 C言語 、6回1〜10、のは言わせています。 500 00:26:23,800 --> 00:26:26,789 501 00:26:26,789 --> 00:26:28,830 だから私は見るために何をしたいです 含まれている、あなたは思いますか? 502 00:26:28,830 --> 00:26:37,110 503 00:26:37,110 --> 00:26:38,110 だから、6のすべての倍数。 504 00:26:38,110 --> 00:26:42,170 さて、あなたはどう思いますか 私はこれを行う場合に起こるのだろうか? 505 00:26:42,170 --> 00:26:48,090 私はこのビット明確に、C、Cを作ってあげます。 506 00:26:48,090 --> 00:26:50,365 だから何が起こるか、あなたを行います 私はこれを行う場合は、と思いますか? 507 00:26:50,365 --> 00:26:51,488 プラスC。 508 00:26:51,488 --> 00:26:55,550 509 00:26:55,550 --> 00:26:56,050 [聞こえません] 510 00:26:56,050 --> 00:26:58,552 511 00:26:58,552 --> 00:27:02,350 >> 聴衆:エラーかのどちらか ちょうど最初の3つの要素が追加されます。 512 00:27:02,350 --> 00:27:04,510 >> CONNER HARRIS:全くありません。 513 00:27:04,510 --> 00:27:05,522 これは、我々が得たものです。 514 00:27:05,522 --> 00:27:08,910 何が起こるかというと短いです アレイは、循環ました。 515 00:27:08,910 --> 00:27:13,990 だから我々は124、124、124を得ました。 516 00:27:13,990 --> 00:27:15,710 うん。 517 00:27:15,710 --> 00:27:18,940 そして、基本的に、あなたが見ることができます この動作の前に、プラス1、 518 00:27:18,940 --> 00:27:22,190 この動作のサブクラスとして 最短配列がちょうど数であります 519 00:27:22,190 --> 00:27:25,410 1つの要素配列です1、。 520 00:27:25,410 --> 00:27:27,740 私は、すべてのベクトルを言って 代わりに、アレイの時間、 521 00:27:27,740 --> 00:27:30,290 それだから何R ドキュメントは通常ありません。 522 00:27:30,290 --> 00:27:33,070 それは染み付いCの習慣です。 523 00:27:33,070 --> 00:27:37,590 >> [OK]を、ので、今、私たちはこの配列を持っています。 524 00:27:37,590 --> 00:27:38,830 だから我々はこの配列、Cを持っています。 525 00:27:38,830 --> 00:27:41,380 私たちは、概要を得ることができます C、要約Cの統計情報。 526 00:27:41,380 --> 00:27:46,920 527 00:27:46,920 --> 00:27:48,280 そして、それはいいです。 528 00:27:48,280 --> 00:27:51,070 529 00:27:51,070 --> 00:27:52,670 だから今のは、いくつかの行列のことをしましょう​​。 530 00:27:52,670 --> 00:27:56,160 のは、mが行列であるとしましょう​​。 531 00:27:56,160 --> 00:27:57,780 のは、それ3つずつ3作ってみましょう。 532 00:27:57,780 --> 00:28:01,630 だからNROWSは3に等しく、ncolsのは3に等しいです。 533 00:28:01,630 --> 00:28:04,190 534 00:28:04,190 --> 00:28:10,710 そして、データのレッツはそう何をdo-- あなたはこれを行うために起こっていると思いますか? 535 00:28:10,710 --> 00:28:15,310 536 00:28:15,310 --> 00:28:16,580 >> 右、それは次の一つです。 537 00:28:16,580 --> 00:28:17,970 それはnrowとncolumnです。 538 00:28:17,970 --> 00:28:22,164 539 00:28:22,164 --> 00:28:24,580 それでは、私がやったことは私がしましたです 3×3行列を宣言 540 00:28:24,580 --> 00:28:26,950 私は、9要素の配列で渡されました。 541 00:28:26,950 --> 00:28:30,530 すべての対数そう 要素9を介して1。 542 00:28:30,530 --> 00:28:33,400 543 00:28:33,400 --> 00:28:37,285 そして、すべてのそれらの値が埋めます array--残念アップ? 544 00:28:37,285 --> 00:28:38,660 観客:これらは、ベース10のログがありますか? 545 00:28:38,660 --> 00:28:41,284 CONNER HARRIS:いいえ、ログがあります 自然対数なので、底e。 546 00:28:41,284 --> 00:28:44,886 547 00:28:44,886 --> 00:28:47,010 ええ、あなたが望んでいた場合は、ベース 10ログは、私はあなたが持っていると思います 548 00:28:47,010 --> 00:28:51,620 ログ10で割ったものは何でも、ログインします。 549 00:28:51,620 --> 00:28:56,750 それで[聞こえない]のデータは、ちょうど 、底に配列するので、トップを充填 550 00:28:56,750 --> 00:28:59,490 その後、左から右へ。 551 00:28:59,490 --> 00:29:06,890 そして、あなたは他のいくつかの操作を行いたい場合 配列、のは、nが行列であるとしましょう​​。 552 00:29:06,890 --> 00:29:10,317 私は13に、2を知らない、のは、やってみましょう。 553 00:29:10,317 --> 00:29:11,900 または私はもっと面白い何かをするだろう。 554 00:29:11,900 --> 00:29:13,770 私は2〜4の操作を行います。 555 00:29:13,770 --> 00:29:15,780 nrowは、のは言わせて、3に等しいです。 556 00:29:15,780 --> 00:29:18,992 NcoIは4に等しいです。 557 00:29:18,992 --> 00:29:20,360 N。 558 00:29:20,360 --> 00:29:22,090 だから我々はこれを持っています。 559 00:29:22,090 --> 00:29:26,130 >> そして今、我々はこれらを乗算したい場合は、 我々は、nパーセント回パーセントをするだろう 560 00:29:26,130 --> 00:29:27,680 そのためにはn個です。 561 00:29:27,680 --> 00:29:30,234 562 00:29:30,234 --> 00:29:31,400 そして、我々は行列積を持っています。 563 00:29:31,400 --> 00:29:33,970 564 00:29:33,970 --> 00:29:37,810 彼らところで、あなたはどのように見ました 私は、nを宣言したときに、2から4 565 00:29:37,810 --> 00:29:43,570 ベクターは、まで循環させてしまいました それは、nのすべてを埋め? 566 00:29:43,570 --> 00:29:45,710 あなたが取るしたい場合 固有値分解、 567 00:29:45,710 --> 00:29:46,960 これは、我々は非常に簡単に行うことができるものです。 568 00:29:46,960 --> 00:29:47,709 我々は固有nを行うことができます。 569 00:29:47,709 --> 00:29:52,290 570 00:29:52,290 --> 00:29:54,600 そして、これが私たちの最初のものです リストで発生します。 571 00:29:54,600 --> 00:29:57,000 >> だから固有nが2キーを使用して、リストです。 572 00:29:57,000 --> 00:29:58,430 ここで、この配列である値、。 573 00:29:58,430 --> 00:30:01,030 そして、ここで、この配列であるベクトル、。 574 00:30:01,030 --> 00:30:08,240 ですから、抽出したい場合は、 たとえば、この3番目の列 575 00:30:08,240 --> 00:30:13,080 固有ベクトル行列から、なぜなら 固有ベクトルは列ベクトルです。 576 00:30:13,080 --> 00:30:24,400 だから我々はVEC固有n個のド​​ル記号を行うことができます ベクターは、コンマ3の[聞こえません]。 577 00:30:24,400 --> 00:30:29,800 578 00:30:29,800 --> 00:30:30,900 VEC。 579 00:30:30,900 --> 00:30:34,100 ご想像のとおり、ということです。 580 00:30:34,100 --> 00:30:39,210 >> 次に言うn回パーセント回VEC。 581 00:30:39,210 --> 00:30:42,610 582 00:30:42,610 --> 00:30:48,320 そこでここではその結果は確かのように見えます ここでは第三の固有値を取った場合、 583 00:30:48,320 --> 00:30:50,390 これに対応します 第三固有ベクトル。 584 00:30:50,390 --> 00:30:53,190 それはちょうどですべてを掛け この固有ベクトル、成分ごと、 585 00:30:53,190 --> 00:30:53,990 固有値によって。 586 00:30:53,990 --> 00:30:57,760 そして、それは我々が期待するものです、 そのためには固有値があるものです。 587 00:30:57,760 --> 00:31:00,890 ここに誰を持っていません 線形代数を撮影? 588 00:31:00,890 --> 00:31:02,530 カップルの人々、[OK]をクリックします。 589 00:31:02,530 --> 00:31:04,030 少しだけのためにあなたの脳をオフにします。 590 00:31:04,030 --> 00:31:07,490 591 00:31:07,490 --> 00:31:20,720 そして、我々は固有のnを取る確かにあれば 3回VECドル記号値、 592 00:31:20,720 --> 00:31:21,810 よく同じことを得ます。 593 00:31:21,810 --> 00:31:24,726 これは、行としてフォーマットされています異なります 代わりに、列ベクトルのベクトル 594 00:31:24,726 --> 00:31:25,640 しかし、大したこと。 595 00:31:25,640 --> 00:31:29,430 596 00:31:29,430 --> 00:31:35,170 そしてそうそれらは基本的にはいいです 私たちは行列でできること、 597 00:31:35,170 --> 00:31:36,489 一覧を示しました。 598 00:31:36,489 --> 00:31:39,030 私は素敵なを示すべき 同様に機能に関するもの。 599 00:31:39,030 --> 00:31:41,750 >> それでは、say--ましょう[聞こえません] 機能、レッツ・コール 600 00:31:41,750 --> 00:31:51,960 それに対して機能FUNC N N squared-- 実際に、それは本当に最高ではないのです。 601 00:31:51,960 --> 00:31:55,632 A、B、乗プラスB。 602 00:31:55,632 --> 00:31:58,547 603 00:31:58,547 --> 00:32:00,380 だから、一つのことについて 機能、再度、それらは 604 00:32:00,380 --> 00:32:01,963 明示的なreturn文は必要ありません。 605 00:32:01,963 --> 00:32:04,250 だから、just--ことができます 最後の文が評価 606 00:32:04,250 --> 00:32:07,502 返さ声明になり、 または値が返さ。 607 00:32:07,502 --> 00:32:10,460 したがって、この場合には、我々は評価しています 1文で、乗プラスB。 608 00:32:10,460 --> 00:32:12,043 つまり、デフォルトの戻り値になります。 609 00:32:12,043 --> 00:32:14,530 それはで入れて痛いことはありません 、明示的に値を返します 610 00:32:14,530 --> 00:32:16,880 あなたが扱っている場合は特に 非常に複雑なロジックの機能 611 00:32:16,880 --> 00:32:17,380 フロー。 612 00:32:17,380 --> 00:32:18,450 しかし、あなたはそれらを必要としません。 613 00:32:18,450 --> 00:32:24,890 だから今、私たちはFUNC 5,1を行うことができますし、 これは、あなたが期待するものは基本的です。 614 00:32:24,890 --> 00:32:29,146 615 00:32:29,146 --> 00:32:31,270 私たちにできる何か他のもの、 私たちは実際にFUNC bを行うことができます 616 00:32:31,270 --> 00:32:33,260 1に等しく、5に等しいです。 617 00:32:33,260 --> 00:32:36,870 618 00:32:36,870 --> 00:32:40,770 だから我々はここにどの番号を指定した場合、 これは引数にする引数行きます 619 00:32:40,770 --> 00:32:44,680 関数の中で、私たちは、周りに反転することができます 私たちが好きな場所、これらの値。 620 00:32:44,680 --> 00:32:48,405 >> 観客:理由があります Bでそれを書くために 621 00:32:48,405 --> 00:32:52,404 ただ使用するのではなく等​​しいです 数字とカンマ? 622 00:32:52,404 --> 00:32:54,820 CONNER HARRIS:ええ、通常 あなたが機能を持っている場合、これを行います 623 00:32:54,820 --> 00:32:58,540 引数の多くの。 624 00:32:58,540 --> 00:33:00,690 それは多くの場合のようであるかもしれません あなただけいただきたいフラグ 625 00:33:00,690 --> 00:33:03,130 まれに使用します。 626 00:33:03,130 --> 00:33:06,740 そして、この方法は、あなたはあなたをonly--することができます 特定の引数を参照することができます 627 00:33:06,740 --> 00:33:09,110 あなたが使用すること デフォルト以外の値を、 628 00:33:09,110 --> 00:33:14,470 あなたが外に記述する必要はありません フラグの束がそれらの後、偽等しいです。 629 00:33:14,470 --> 00:33:19,710 または私は再びこれを書くことができます Bのようなデフォルト値は2に等しいです。 630 00:33:19,710 --> 00:33:26,289 そして私がf funcを行うことができ、 私は4、1、この時間をやります。 631 00:33:26,289 --> 00:33:28,580 図4は、二乗され、17 ご想像のとおり、プラス1、。 632 00:33:28,580 --> 00:33:34,290 >> しかし、私はちょうどもできました FUNC 4でこれを呼んで、 633 00:33:34,290 --> 00:33:36,970 私はので、18を得るでしょう 私はBを指定しないでください。 634 00:33:36,970 --> 00:33:38,550 だから、bが2のデフォルト値を取得します。 635 00:33:38,550 --> 00:33:41,700 636 00:33:41,700 --> 00:33:47,200 >> [OK]を、今あなたがしている場合 デモと一緒に以下の、 637 00:33:47,200 --> 00:33:51,010 あなたのコマンドで、この行を入力 プロンプトと立ち上がるものを参照してください。 638 00:33:51,010 --> 00:33:52,090 実際に、それをしません。 639 00:33:52,090 --> 00:33:52,590 これを入力してください。 640 00:33:52,590 --> 00:33:57,780 641 00:33:57,780 --> 00:34:01,000 あなたはこのようなものを取得する必要があります。 642 00:34:01,000 --> 00:34:04,780 mtcarsようにデータに内蔵されています このデモンストレーション用セット 643 00:34:04,780 --> 00:34:13,550 それが来るwith--来る目的 あなたのRの配布と、デフォルトではインチ 644 00:34:13,550 --> 00:34:19,211 これはからの統計情報をまとめたものです モータートレンド誌の1974年問題 645 00:34:19,211 --> 00:34:20,710 別の車のモデルの数に。 646 00:34:20,710 --> 00:34:28,270 >> だから、ガロン当たりマイルあり、cylinders-- 私は何DISP is--馬力忘れます。 647 00:34:28,270 --> 00:34:31,610 648 00:34:31,610 --> 00:34:32,420 おそらく。 649 00:34:32,420 --> 00:34:36,920 あなただけのGoogleのMT車の場合、 最初の結果の後、1 650 00:34:36,920 --> 00:34:38,730 からになります 公式Rのドキュメント 651 00:34:38,730 --> 00:34:41,080 それは説明します すべてのこれらのデータフィールド。 652 00:34:41,080 --> 00:34:47,020 だから、重量がある重量is-- トン車の重量。 653 00:34:47,020 --> 00:34:48,880 Q秒が4分の1マイルの時間です。 654 00:34:48,880 --> 00:34:52,409 655 00:34:52,409 --> 00:34:55,850 だから今、私たちはいくつかの楽しいことを行うことができます MT車についてのデータフィールドです。 656 00:34:55,850 --> 00:35:01,640 >> だから私たちは物事を行うことができます 行名、MT車のように。 657 00:35:01,640 --> 00:35:05,490 そして、これは内のすべての行のリストです。 車の名前であるデータセット。 658 00:35:05,490 --> 00:35:10,780 我々はCOLNAMES、MT車これを行うことができます。 659 00:35:10,780 --> 00:35:15,500 あなたは、MT車をすれば、 2のようなサブ数値インデックス、。 660 00:35:15,500 --> 00:35:18,177 我々は外に第二カラムを取得します これは、シリンダされるであろう。 661 00:35:18,177 --> 00:35:19,370 >> 観客:あなたが何をしましたか? 662 00:35:19,370 --> 00:35:21,570 >> CONNERハリス:私は入力されました MT車、ブラケットE、 663 00:35:21,570 --> 00:35:24,180 これは私の第二を与えました MT車の外に列。 664 00:35:24,180 --> 00:35:34,501 665 00:35:34,501 --> 00:35:38,110 我々は、行をしたい場合、または、私が入力することができます mtcarsには、例えば、2をコンマ。 666 00:35:38,110 --> 00:35:41,850 667 00:35:41,850 --> 00:35:46,390 そのような他のラウンド2カンマ、。 668 00:35:46,390 --> 00:35:48,880 そして、それはあなたの行になります。 669 00:35:48,880 --> 00:35:54,680 これはここだけ、あなたに与えます ベクターとしての列が、列。 670 00:35:54,680 --> 00:36:04,634 671 00:36:04,634 --> 00:36:06,425 私はちょうど今、私を実現しました 証明するために忘れてしまいました 672 00:36:06,425 --> 00:36:09,150 ベクターについてのいくつかのクールなもの あなたがインデックスに行うことができます。 673 00:36:09,150 --> 00:36:10,480 だから、私は今のことをやらせます。 674 00:36:10,480 --> 00:36:17,130 それでは、パッティングgets-- Cをやらせます 1〜10 pause-- 2回でこの。 675 00:36:17,130 --> 00:36:21,360 だから、Cだけになるだろう 20を通してベクトル2。 676 00:36:21,360 --> 00:36:24,640 私は、C2、このような要素を取ることができます。 677 00:36:24,640 --> 00:36:30,942 私は、ベクターに渡すことができます このように、私を聞かせC-- 678 00:36:30,942 --> 00:36:34,470 VEC Cのような、Cとは異なる名前を使用します。 679 00:36:34,470 --> 00:36:37,591 680 00:36:37,591 --> 00:36:39,340 基本的に、私がやっています このようにあなたが得ることはありません 681 00:36:39,340 --> 00:36:45,010 Cとの間の混乱 ベクター構築機能、 682 00:36:45,010 --> 00:36:48,800 して、変数名としてC。 683 00:36:48,800 --> 00:36:53,120 VECブラケットC 4、5、7。 684 00:36:53,120 --> 00:36:56,540 これは、第5、第四に私を取得します アレイの7つの要素。 685 00:36:56,540 --> 00:37:01,740 私は負に入れ、VECを行うことができます 負の4のようなインデックス、。 686 00:37:01,740 --> 00:37:06,500 それはこれで私を取得します 4番目の要素を除去しました。 687 00:37:06,500 --> 00:37:10,140 その後、私はスライスをやってみたかった場合、 私は6を通じてVEC 2を行うことができます。 688 00:37:10,140 --> 00:37:15,480 2コロン6はちょうど別です 2ベクトル、3、4、5、6。 689 00:37:15,480 --> 00:37:18,230 それを出してくれる。 690 00:37:18,230 --> 00:37:20,770 >> だからとにかく、バックMT車へ。 691 00:37:20,770 --> 00:37:26,650 692 00:37:26,650 --> 00:37:28,450 それでは、いくつかの回帰を行うことができます。 693 00:37:28,450 --> 00:37:34,240 モデルがしてみましょうgets--としましょう 直線的に私にはわかりませんregress--。 694 00:37:34,240 --> 00:37:41,780 まずはもちろん、mtcarsを添付してみましょう。 695 00:37:41,780 --> 00:37:44,870 696 00:37:44,870 --> 00:38:00,010 だから、[聞こえない]モデルLMは、のは、退行しましょう チルダ重量のマイル/ガロン。 697 00:38:00,010 --> 00:38:03,300 そして、データフレームはmtcarsです。 698 00:38:03,300 --> 00:38:06,830 だから要約モデル。 699 00:38:06,830 --> 00:38:12,900 700 00:38:12,900 --> 00:38:15,595 >> [OK]を、ので、これは少し複雑に見えます。 701 00:38:15,595 --> 00:38:19,380 しかし、基本的には、我々かのように見て マイル/ガロンを表現してみてください 702 00:38:19,380 --> 00:38:23,970 重みの線形関数として、 その後、私たちはここで、この行を持って、 703 00:38:23,970 --> 00:38:28,730 これは37.28でインターセプトします。 704 00:38:28,730 --> 00:38:33,830 37.28は、理論的なマイルになります ゼロの重さの車のガロンあたり。 705 00:38:33,830 --> 00:38:41,210 そして、すべての追加トンのため、 あなたはガロン当たり約5マイルをノック 706 00:38:41,210 --> 00:38:42,440 そのオフ。 707 00:38:42,440 --> 00:38:45,120 これらの係数の両方あなた そこに、標準誤差を見ることができます。 708 00:38:45,120 --> 00:38:47,870 そして、彼らは非常にあります 統計学的に有意な。 709 00:38:47,870 --> 00:38:55,740 >> だから我々は非常に特定することができます 負の10から1 E 10。 710 00:38:55,740 --> 00:38:59,510 負のだから1回何かを 10、あなたは重い車を作る場合に、 711 00:38:59,510 --> 00:39:01,440 それはガロンあたり悪化マイルを持っています。 712 00:39:01,440 --> 00:39:04,940 713 00:39:04,940 --> 00:39:07,250 それとも我々はいくつかの他のモデルをテストすることができます。 714 00:39:07,250 --> 00:39:09,230 同様の代わりに、 重量でこれを回帰、 715 00:39:09,230 --> 00:39:12,600 重量のログでそれを退行させ、 多分有効重量理由 716 00:39:12,600 --> 00:39:15,690 走行距離に何とか線形ではありません。 717 00:39:15,690 --> 00:39:18,540 >> これは、私たちに0.7528の二乗Rを与えました。 718 00:39:18,540 --> 00:39:19,610 それでは、これを試してみましょう。 719 00:39:19,610 --> 00:39:21,485 今回はのはやらせます 別の変数、あまりにも。 720 00:39:21,485 --> 00:39:22,500 MODEL2。 721 00:39:22,500 --> 00:39:24,800 だから要約、MODEL2。 722 00:39:24,800 --> 00:39:28,200 723 00:39:28,200 --> 00:39:31,390 すべての権利なので、もう一度、我々 ここで私たちの最高のフィットラインを得ました。 724 00:39:31,390 --> 00:39:36,160 そして、これは、これは言っていますtime-- 基本的にはそのたびに 725 00:39:36,160 --> 00:39:38,090 の重量を増加させます Eの要因によって車 726 00:39:38,090 --> 00:39:40,580 あなたはガロンあたり、この多くのマイルを失います。 727 00:39:40,580 --> 00:39:43,210 728 00:39:43,210 --> 00:39:50,326 >> だから今回は、当社の残余の標準 そのit--エラーは本当に重要ではありません。 729 00:39:50,326 --> 00:39:53,540 残留標準誤差はあります 基本的には標準エラー 730 00:39:53,540 --> 00:39:57,760 あなたが後に残っていること トレンドラインを奪います。 731 00:39:57,760 --> 00:40:02,805 そして、ここで私たちの二乗rは、0.81であります より少し優れているもの 732 00:40:02,805 --> 00:40:07,640 我々は、0.52の前に持っていました。 733 00:40:07,640 --> 00:40:09,750 >> そして、今のは追加してみましょう この回帰の用語。 734 00:40:09,750 --> 00:40:13,020 それでは、マイル/ガロンを退行させます 重みのログの両方 735 00:40:13,020 --> 00:40:21,130 そして、のは、q個のマイルをさせ、 4分の1マイルの時間。 736 00:40:21,130 --> 00:40:26,190 [OK]を、それがthe--すべての権利、qsecを持っている必要があります。 737 00:40:26,190 --> 00:40:26,690 Qsec。 738 00:40:26,690 --> 00:40:30,630 739 00:40:30,630 --> 00:40:35,000 Actually--申し訳ありませんが、何? 740 00:40:35,000 --> 00:40:37,000 私はこの何かを呼びましょう MODEL2以外に他の。 741 00:40:37,000 --> 00:40:38,000 私はこのMODEL3を呼びましょう。 742 00:40:38,000 --> 00:40:40,860 743 00:40:40,860 --> 00:40:42,900 そして今、我々は要約MODEL3を行うことができます。 744 00:40:42,900 --> 00:40:46,850 745 00:40:46,850 --> 00:40:49,100 そのため、再び、これは基本的に 何を期待するかもしれません。 746 00:40:49,100 --> 00:40:51,750 あなたは正の切片を持っています。 747 00:40:51,750 --> 00:40:54,550 増加効果的な 重みは負です。 748 00:40:54,550 --> 00:40:58,490 かつ効果的に 増加4分の1マイルの時間 749 00:40:58,490 --> 00:41:02,420 しかし肯定的であるが、 重量よりとても少ないです。 750 00:41:02,420 --> 00:41:06,010 今直感的に、あなたはの意味を作ることができます このスポーツカーを考えると言うこともできます。 751 00:41:06,010 --> 00:41:08,950 非常に高速な加速があり、 非常に短い4分の1マイルの時間。 752 00:41:08,950 --> 00:41:13,729 彼らはまた、より多くのガスを使用するつもりです もっと賢明な車が行っているのに対し、 753 00:41:13,729 --> 00:41:16,020 遅い加速を持っています、 高い4分の1マイルの時間、 754 00:41:16,020 --> 00:41:20,890 そのため,,少ないガスを使用 ガロン当たりのより高いマイル。 755 00:41:20,890 --> 00:41:21,390 グレート。 756 00:41:21,390 --> 00:41:23,431 そして今、それは時間です このような何かをプロットします。 757 00:41:23,431 --> 00:41:27,810 それでは、そのように裸do--てみましょう 私たちが行うことができます骨plots-- 758 00:41:27,810 --> 00:41:35,280 私はこのデータフレームを添付しましたので、 before--私たちはプロット、重量のmpgを行うことができます。 759 00:41:35,280 --> 00:41:38,762 760 00:41:38,762 --> 00:41:39,720 これは少し大きくしてください。 761 00:41:39,720 --> 00:41:55,050 762 00:41:55,050 --> 00:41:57,350 そこに、私たちは基本的に持っています 散布図が、ポイント 763 00:41:57,350 --> 00:41:58,690 この上で見ることが一種のは難しいです。 764 00:41:58,690 --> 00:42:04,860 765 00:42:04,860 --> 00:42:10,900 >> 私はぶっきらぼう何覚えていません 構文は、プロットを変更するためのものです。 766 00:42:10,900 --> 00:42:14,100 だから私はこれがされると思います 育てるのに良い時期、 767 00:42:14,100 --> 00:42:18,000 とても素敵な組み込みヘルプがあります 機能、ヘルプ名前を引用符で機能します。 768 00:42:18,000 --> 00:42:21,690 私たちは基本的に育てますよ あなたが好きなもの。 769 00:42:21,690 --> 00:42:28,010 770 00:42:28,010 --> 00:42:32,730 私は実際にこれをやると思います タイプは、ポイントのプロットのPに等しいです。 771 00:42:32,730 --> 00:42:34,369 それが何かを変更しましたか? 772 00:42:34,369 --> 00:42:35,160 そして、いや、そうでもありません。 773 00:42:35,160 --> 00:42:39,160 774 00:42:39,160 --> 00:42:39,660 大丈夫。 775 00:42:39,660 --> 00:42:46,760 776 00:42:46,760 --> 00:42:49,580 >> 私はこれをしなかったいくつかの理由から、 しばらく前に自分のコンピュータ上で、 777 00:42:49,580 --> 00:42:52,080 すべての散布点 より明確にしました。 778 00:42:52,080 --> 00:43:06,390 779 00:43:06,390 --> 00:43:13,970 とにかく、目に見えるの散布種類がありますか? 780 00:43:13,970 --> 00:43:15,124 そこに1があります。 781 00:43:15,124 --> 00:43:16,165 そこにいくつかの、いくつかあり。 782 00:43:16,165 --> 00:43:18,860 783 00:43:18,860 --> 00:43:21,185 あなたは、ソートの権利、それらを見ることができますか? 784 00:43:21,185 --> 00:43:24,310 だから我々は最高のフィットラインを追加する場合 ビット裸である、ここで、このプロットに 785 00:43:24,310 --> 00:43:29,290 bones--私はそれは少し立派にしましょう​​。 786 00:43:29,290 --> 00:43:38,075 メインは、重量対等しいです。 787 00:43:38,075 --> 00:43:46,322 788 00:43:46,322 --> 00:43:49,740 マイル/ガロン。 789 00:43:49,740 --> 00:43:53,570 繰り返しますが、あなたはどのように見ることができる便利 オプションの引数にもしてここにあります 790 00:43:53,570 --> 00:43:58,090 で物事を置くことがありません キーボード引数を指定して特定の順序 791 00:43:58,090 --> 00:44:01,600 あなたはプロット、理由があるとき これらは、引数の多くを取ります。 792 00:44:01,600 --> 00:44:07,490 >> Xlabは、重量、重量、トンに等しいです。 793 00:44:07,490 --> 00:44:10,091 794 00:44:10,091 --> 00:44:10,590 大丈夫。 795 00:44:10,590 --> 00:44:17,340 796 00:44:17,340 --> 00:44:21,480 [OK]を、ええ、このデバイス ビット迷惑されています。 797 00:44:21,480 --> 00:44:30,160 しかし、あなたは、ソートのそこまで見ることができます 側のグラフのタイトルがあります。 798 00:44:30,160 --> 00:44:35,260 ここthere's--下部にオーバー ここで軸のラベルがあります。 799 00:44:35,260 --> 00:44:37,700 私はぶっきらぼう覚えていません どのコマンドがars-- 800 00:44:37,700 --> 00:44:41,000 どの機能が増加しています これらのラベルとタイトルのサイズ、 801 00:44:41,000 --> 00:44:43,110 彼らはそこにいます。 802 00:44:43,110 --> 00:44:46,625 >> そして、私たちがしたい場合は 最良適合線を追加し、 803 00:44:46,625 --> 00:44:49,250 私たちは私like--何かを行うことができます 構文はここに書かれています。 804 00:44:49,250 --> 00:44:52,280 805 00:44:52,280 --> 00:45:11,130 だから我々はちょうどモデルを追加覚えています MPG、体重、mtcarsました。 806 00:45:11,130 --> 00:45:16,470 そして、私は最高のフィット感を追加したいそうだとすれば ラインは、私は、Bラインモデルを行うことができます。 807 00:45:16,470 --> 00:45:18,556 そして、ブーム、我々は最高のフィットラインを持っています。 808 00:45:18,556 --> 00:45:19,970 それは、再び参照するには、ハードのようなものです。 809 00:45:19,970 --> 00:45:22,178 私は約かなりごめんなさい 技術的な難しさ。 810 00:45:22,178 --> 00:45:25,230 しかし、それは基本的に実行されます 上から下、左から右へ。 811 00:45:25,230 --> 00:45:27,550 >> そして、規模があった場合 大きな、あなたが見ることができます 812 00:45:27,550 --> 00:45:31,260 切片であることが何をすることができます 要約統計量から見つけます 813 00:45:31,260 --> 00:45:34,790 あなたは要約モデルを入力した場合。 814 00:45:34,790 --> 00:45:40,130 [OK]をので、私は誰もが取得願っています 何の感覚のようなもの 815 00:45:40,130 --> 00:45:42,030 Rは、それがために良いことだもの、です。 816 00:45:42,030 --> 00:45:45,520 あなたはよりはるかに立派プロットを作ることができます あなた自身の時間にこれ、あなたが好きなら。 817 00:45:45,520 --> 00:45:50,100 818 00:45:50,100 --> 00:45:53,950 >> 外部関数インタフェースそう。 819 00:45:53,950 --> 00:46:00,330 これは一般的にないものです 入門講義でカバー 820 00:46:00,330 --> 00:46:03,560 またはrのための入門何でも。 821 00:46:03,560 --> 00:46:05,584 それはあなたがそれを必要としている可能性はないのです。 822 00:46:05,584 --> 00:46:08,000 しかし、私は、それが有用であることが分かっ 過去に私自​​身のプロジェクト。 823 00:46:08,000 --> 00:46:10,984 そして、は良いはありません オンラインそれのためのチュートリアルです。 824 00:46:10,984 --> 00:46:12,900 だから、僕はするつもりです このを通してあなたのすべてを急い 825 00:46:12,900 --> 00:46:16,606 そしてあなたが残して自由です。 826 00:46:16,606 --> 00:46:18,480 だから外国人 関数インターフェースは何ですか 827 00:46:18,480 --> 00:46:23,130 あなたが見るために呼び出すために使用できます R.内部で機能し、 828 00:46:23,130 --> 00:46:29,850 RがC. Rの算術だけである上に構築されています Cの64ビット浮動小数点演算、 829 00:46:29,850 --> 00:46:32,852 これは[聞こえない]をダブルタイプです。 830 00:46:32,852 --> 00:46:35,060 そして、あなたは何をしたいかもしれません 理由の束のためのこの。 831 00:46:35,060 --> 00:46:39,250 一つは、Rが、それだと解釈され マシンコードにまでコンパイルされません。 832 00:46:39,250 --> 00:46:42,170 つまり、あなたを書き換えることができます 内部ループCで、その後は取得します 833 00:46:42,170 --> 00:46:45,920 R.等を用いることの利点 それはもう少し便利にCよりもです 834 00:46:45,920 --> 00:46:48,899 それは、よりよいグラフを持っています 施設やその他もろもろ。 835 00:46:48,899 --> 00:46:51,690 そして一方ではまだ入手することができるという 内側のループのうち最高速度、 836 00:46:51,690 --> 00:46:53,650 これはあなたが本当にそれを必要な場所です。 837 00:46:53,650 --> 00:46:56,330 >> 既存のCライブラリの再利用、 それも重要です。 838 00:46:56,330 --> 00:47:00,320 あなたのようなのためのいくつかのCライブラリを使用している場合は、 私は、フーリエ変換を知りません、 839 00:47:00,320 --> 00:47:05,190 またはいくつかの非常に始生代 統計手順を使用 840 00:47:05,190 --> 00:47:09,470 高エネルギー宇宙物理学における か何か、私にはわかりません。 841 00:47:09,470 --> 00:47:13,058 高エネルギー天体物理学 さえないと思い、私は思います。 842 00:47:13,058 --> 00:47:16,480 しかし、あなたがたのではなく、それを行うことができます それらのネイティブRポートを書き込みます。 843 00:47:16,480 --> 00:47:22,725 そして、あなたの場合のように、再びthe--とオン Rの既定のライブラリのほとんどで見て、 844 00:47:22,725 --> 00:47:25,600 内部に、内部があります 外国の機能を使用するつもり 845 00:47:25,600 --> 00:47:26,724 非常に広範囲のインタフェース。 846 00:47:26,724 --> 00:47:31,630 彼らは、フーリエ変換のようなものがあるでしょう 変換または相関を計算します 847 00:47:31,630 --> 00:47:34,890 C言語で書かれた係数、そして、彼らはよ ちょうどそれらのまわりRラッパーを持っています。 848 00:47:34,890 --> 00:47:38,230 インタフェースがあります 少し難しいです。私は思う 849 00:47:38,230 --> 00:47:43,750 その難しさはに誇張されています あなたが見つけるの命令がたくさん。 850 00:47:43,750 --> 00:47:46,200 しかし、それにもかかわらず、それは少し混乱しています。 851 00:47:46,200 --> 00:47:48,650 そして、私はすることができていません それのために良いチュートリアルを見つけます、 852 00:47:48,650 --> 00:47:51,980 これは、今それです。 853 00:47:51,980 --> 00:47:55,360 また、このセグメント全体 後で参照するためのより多くのです。 854 00:47:55,360 --> 00:47:57,687 コピー心配しないでください 今はすべてダウン。 855 00:47:57,687 --> 00:48:00,020 したがって、次の手順 Unixライクなシステムのためのものです、 856 00:48:00,020 --> 00:48:05,150 Linuxでは、BSDは、OS Xのは、私は知りません これはWindows上でどのように動作しますか、 857 00:48:05,150 --> 00:48:08,280 しかし、ちょうどあなたをしないでください Windows上で最終的なプロジェクト。 858 00:48:08,280 --> 00:48:10,790 859 00:48:10,790 --> 00:48:12,460 あなたは本当にしたくありません。 860 00:48:12,460 --> 00:48:14,770 Unixのは、はるかに良いセットです カジュアルなプログラミングのためのアップ。 861 00:48:14,770 --> 00:48:19,320 862 00:48:19,320 --> 00:48:21,390 だから、基本的には外国人 関数インタフェース。 863 00:48:21,390 --> 00:48:24,420 あなたは、Cを書きたい場合 Rで使用するための機能、 864 00:48:24,420 --> 00:48:27,250 それはすべて取るために持っています ポインタとして引数。 865 00:48:27,250 --> 00:48:30,666 >> そこで、単一の値について、この それは値が指すことを意味します。 866 00:48:30,666 --> 00:48:33,040 アレイの場合、これはポインタであります 最初の要素に、どの 867 00:48:33,040 --> 00:48:36,750 配列名が実際に何を意味するかです。 868 00:48:36,750 --> 00:48:40,140 繰り返しますが、これはあなたが持っているべきものです かなり完全にダウンして、pが5を設定した後。 869 00:48:40,140 --> 00:48:43,334 配列名は単なるポインタであります 最初の要素に、 870 00:48:43,334 --> 00:48:44,750 浮動小数点型はdoubleです。 871 00:48:44,750 --> 00:48:47,310 そして、あなたの関数はvoidを返す必要があります。 872 00:48:47,310 --> 00:48:50,810 それができる唯一の​​方法 実際に何が起こったのかRを伝えます 873 00:48:50,810 --> 00:48:54,410 Rが与えたメモリを変更することによってです 外国の機能により、それまで 874 00:48:54,410 --> 00:48:54,910 インタフェース。 875 00:48:54,910 --> 00:48:58,180 876 00:48:58,180 --> 00:49:00,127 >> だから私はこれを書いています ここでは例として、これは 877 00:49:00,127 --> 00:49:02,460 使用を計算する関数 2つのベクトルの内積。 878 00:49:02,460 --> 00:49:05,060 これは2つの引数、VEC1、VEC2をとり、 そのベクター自体があり、 879 00:49:05,060 --> 00:49:06,934 して、nは、これがあります 長さ、再びので、 880 00:49:06,934 --> 00:49:12,630 Rが見つけるために[聞こえない]に組み込まれています ベクトルの長さが、Cにはありません。 881 00:49:12,630 --> 00:49:16,182 Cでは、ベクトルは任意であり、 メモリのチャンクを区切り。 882 00:49:16,182 --> 00:49:17,890 あなたができるような方法 ドット積を計算します 883 00:49:17,890 --> 00:49:23,470 ちょうどこのOUTパラメータは設定されています ゼロにして、反復処理 884 00:49:23,470 --> 00:49:28,760 1からので、nは星に nは長さへのポインタですが、 885 00:49:28,760 --> 00:49:32,929 何かを追加 この出力パラメーター。 886 00:49:32,929 --> 00:49:34,970 そして、それは良い練習することができます あなたがやろうとしている場合 887 00:49:34,970 --> 00:49:37,270 これは、2つの別々のC関数を記述します。 888 00:49:37,270 --> 00:49:41,970 そのうちの一つは、そのうちの一つだけhas-- 引数と型をとります 889 00:49:41,970 --> 00:49:43,970 彼らは通常Cであろうこと 890 00:49:43,970 --> 00:49:47,780 >> だから、それは配列を受け取り ポインタとして引数。 891 00:49:47,780 --> 00:49:57,090 しかし、Nのような単一値の引数、 それだけでコピーして値として受け取り、 892 00:49:57,090 --> 00:49:57,917 ポインタなし。 893 00:49:57,917 --> 00:49:59,750 そして、それはしていません [聞こえない]アウトポインタ。 894 00:49:59,750 --> 00:50:01,290 そして、あなたが持つことができます 別の、基本的には、 895 00:50:01,290 --> 00:50:03,623 基本的にラッパー関数こと 要件を処理します 896 00:50:03,623 --> 00:50:07,740 外部関数の あなたのためのインターフェイス。 897 00:50:07,740 --> 00:50:11,840 >> あなたがRでこれを呼び出す方法は一度、あります あなたは、あなたの関数は、C言語で書かれています 898 00:50:11,840 --> 00:50:17,770 あなたは、R CMDの共有ライブラリ、Rを入力 コマンド共有ライブラリ、 899 00:50:17,770 --> 00:50:20,110 FOOドットC、または任意の ファイル名は、 900 00:50:20,110 --> 00:50:23,020 OSはR端子にないシェル。 901 00:50:23,020 --> 00:50:25,200 そして、これは作成されます。 fooというライブラリがそう点在しています。 902 00:50:25,200 --> 00:50:28,180 そして、あなたはそれをロードすることができます 私たちのスクリプトまたは対話式に 903 00:50:28,180 --> 00:50:32,310 コマンドDYNドット負荷で。 904 00:50:32,310 --> 00:50:35,720 その後、機能があります RドットCと呼ばれます。 905 00:50:35,720 --> 00:50:39,310 >> これは、引数を取ります C言語の関数の最初の名前 906 00:50:39,310 --> 00:50:40,970 あなたがコールする必要があります。 907 00:50:40,970 --> 00:50:43,920 そして、すべてのパラメータ その関数に、 908 00:50:43,920 --> 00:50:45,420 彼らは適切な順序でなけれ​​ばなりません。 909 00:50:45,420 --> 00:50:48,580 あなたはこれらのタイプを使用する必要があります 整数として強制機能、 910 00:50:48,580 --> 00:50:52,050 文字として、二重、およびなどの論理。 911 00:50:52,050 --> 00:50:54,710 そして、それは返すとき もう一度だけであるリスト、 912 00:50:54,710 --> 00:50:57,550 の関連配列 パラメータの名前と値 913 00:50:57,550 --> 00:51:00,950 関数の後に実行されました。 914 00:51:00,950 --> 00:51:08,520 >> ドットPRODが持っているので、この場合はそう 引数VEC1、VEC2、nはint型、nはアウト。 915 00:51:08,520 --> 00:51:11,980 cのドットに、私たちはドットPRODを持っています、 関数の名前 916 00:51:11,980 --> 00:51:16,250 我々は、VEC1、VEC2、型強制を呼んでいます。 917 00:51:16,250 --> 00:51:20,060 ベクターのいずれかの長さは、 私はちょうどVEC1任意に選択しました。 918 00:51:20,060 --> 00:51:25,479 それがsを言うために、より堅牢になります VEC1の整数分の長さ、長VEC2。 919 00:51:25,479 --> 00:51:27,520 それからちょうど2つのゼロとして、 私たちは本当にないので、 920 00:51:27,520 --> 00:51:29,644 入る気に 出力パラメータ私たちはだから 921 00:51:29,644 --> 00:51:32,270 とにかくゼロに設定します。 922 00:51:32,270 --> 00:51:37,560 >> そして、結果があることを行っています 基本的には大きな関連する配列 923 00:51:37,560 --> 00:51:42,090 VEC1は、VEC2は何であるものは何でもあります。 924 00:51:42,090 --> 00:51:44,330 しかし、我々は興味を持っています アウト、私たちはそれを得ることができます。 925 00:51:44,330 --> 00:51:47,780 これは、再び非常におもちゃの例であり、 外部関数インタフェースの。 926 00:51:47,780 --> 00:51:54,160 しかし、あなたは、ドットを計算する必要がある場合 ループ内での大規模なベクトルの積、 927 00:51:54,160 --> 00:51:56,960 またはあなたがしなければならない場合 ループ内の何か他のもの、 928 00:51:56,960 --> 00:51:59,850 あなたはRに依存する必要はありません、 オーバーヘッドのビットを持っていました 929 00:51:59,850 --> 00:52:02,830 それに組み込まれて、これが役立ちます。 930 00:52:02,830 --> 00:52:05,870 >> 繰り返しますが、これは通常ではありません Rに入門トピック 931 00:52:05,870 --> 00:52:08,571 それは非常によく文書化されていません。 932 00:52:08,571 --> 00:52:11,070 私はちょうどので、それを含めています 私は過去にそれが有用であることが分かっ。 933 00:52:11,070 --> 00:52:13,654 だから、悪い習慣。 934 00:52:13,654 --> 00:52:15,820 私はそこだと述べました 関数内のforループ。 935 00:52:15,820 --> 00:52:21,150 一般的に、あなたは、いけないで 言語は、それを使用しません。 936 00:52:21,150 --> 00:52:26,100 Rは、反復の実装方法に基づいて、 内部的には、遅くなることがあります。 937 00:52:26,100 --> 00:52:28,540 彼らはただも醜いです。 938 00:52:28,540 --> 00:52:32,410 >> Rはそのように、非常にきれいにベクトルを処理します しばしば、あなたはそれを使用する必要はありません。 939 00:52:32,410 --> 00:52:35,050 940 00:52:35,050 --> 00:52:38,900 その後は通常でき 多くの場合、ベクトルを交換します 941 00:52:38,900 --> 00:52:42,490 高と呼ばれるこれらの機能を持ちます 注文機能、地図、削減、 942 00:52:42,490 --> 00:52:44,404 検索またはフィルタリングします。 943 00:52:44,404 --> 00:52:46,320 私はいくつかをあげます これらは何をすべきかの例。 944 00:52:46,320 --> 00:52:49,957 地図ので、より高次の関数です。 それは、引数として関数を取ります。 945 00:52:49,957 --> 00:52:52,290 だから、それに機能を与えることができ、 あなたはそれを配列を与えることができ、 946 00:52:52,290 --> 00:52:54,640 そして、それは関数を適用します 配列の各要素に 947 00:52:54,640 --> 00:52:55,681 して、新しい配列を返します。 948 00:52:55,681 --> 00:52:58,035 949 00:52:58,035 --> 00:53:00,160 あなたが与える基本的には、削減 それ配列、あなたがそれを与えます 950 00:53:00,160 --> 00:53:02,930 二つの引数を取る関数。 951 00:53:02,930 --> 00:53:07,100 それは、最初の関数を適用します いくつかのスターター値を持つ最初の引数。 952 00:53:07,100 --> 00:53:09,440 そして、第二にその結果に。 953 00:53:09,440 --> 00:53:12,590 そして、第三にその結果を、 その後、第四にその結果に。 954 00:53:12,590 --> 00:53:14,870 それが最後に到達したときに、その後、戻ります。 955 00:53:14,870 --> 00:53:17,620 したがって、たとえば、あなたがしたい場合は すべての要素の合計を計算します 956 00:53:17,620 --> 00:53:23,240 配列には、あなたが呼び出すよりも削減 [聞こえない]とすると、加算を削減 957 00:53:23,240 --> 00:53:26,620 FUNCのような機能、 A、B、プラスbを返します。 958 00:53:26,620 --> 00:53:28,960 そして、0の値を開始します。 959 00:53:28,960 --> 00:53:32,950 >> そして、これらすべての、あなたがそれらを見つけることができます Rのマニュアルに記載され、 960 00:53:32,950 --> 00:53:35,720 いずれの教科書の中で 関数型プログラミング。 961 00:53:35,720 --> 00:53:38,330 このクラスもあります 呼び出される関数は、関数を適用し、 962 00:53:38,330 --> 00:53:42,807 これは私は、彼らがしていますdon't-- 説明するのは難しいビット、 963 00:53:42,807 --> 00:53:45,640 しかし、あなたが見れば[聞こえません] 私は冒頭で引用したことを計上し、 964 00:53:45,640 --> 00:53:48,615 彼はかなりよくでそれらを説明します Rプログラミングの彼の付録。 965 00:53:48,615 --> 00:53:51,599 966 00:53:51,599 --> 00:53:53,390 慣行についての詳細、 ベクトルに追加します。 967 00:53:53,390 --> 00:53:57,570 968 00:53:57,570 --> 00:53:58,070 うん? 969 00:53:58,070 --> 00:54:01,651 970 00:54:01,651 --> 00:54:02,900 私はそれを修正するべきだと思います。 971 00:54:02,900 --> 00:54:07,450 その最初の行では、VEC矢印、 その矢印があってはなりません。 972 00:54:07,450 --> 00:54:10,920 あなたは、ベクトルに割り当てることができます 再び、その長さを取ることにより、プラス1 973 00:54:10,920 --> 00:54:13,220 そのためにいくつかの値を割り当てます。 974 00:54:13,220 --> 00:54:18,970 これは、ベクトルを拡張するか、またはします VEC等号C、VECがnewValueを行うことができます。 975 00:54:18,970 --> 00:54:21,540 ここでも、あなたがCを使用している場合 ベクターとしての一つの引数、 976 00:54:21,540 --> 00:54:23,300 結果の階層がフラット化されます。 977 00:54:23,300 --> 00:54:27,160 だから、あなただけのベクトルを取得します それは、1により拡張です。 978 00:54:27,160 --> 00:54:30,410 これを行うことはありません。 979 00:54:30,410 --> 00:54:33,330 >> 理由はあなた これはこれでやるべきではありません。 980 00:54:33,330 --> 00:54:37,430 あなたがベクトルを割り当てると、それ それをメモリの特定のチャンクを与えます。 981 00:54:37,430 --> 00:54:40,680 あなたはそのベクトルのサイズを大きくした場合、 それはベクトルを再割り当てする必要があります 982 00:54:40,680 --> 00:54:43,820 どこか別の場所。 983 00:54:43,820 --> 00:54:46,980 だから再配分は非常に高価です。 984 00:54:46,980 --> 00:54:50,530 私は方法の詳細に行くことはありません メモリアロケータが実装されています 985 00:54:50,530 --> 00:54:57,280 オペレーティング・システム・レベルで、 それは多くの時間がかかります 986 00:54:57,280 --> 00:54:58,962 メモリの新しいチャンクを見つけることができます。 987 00:54:58,962 --> 00:55:00,920 そしてまた、あなたがしている場合 再割り当てとてもたくさん 988 00:55:00,920 --> 00:55:03,500 徐々に大きく チャンク、あなたは終わります 989 00:55:03,500 --> 00:55:06,420 呼ばれるもので メモリの断片化、 990 00:55:06,420 --> 00:55:09,390 ここで、使用可能なメモリがあります 小さなブロックのロットに分割 991 00:55:09,390 --> 00:55:11,500 ビューのメモリアロケータポイントインチ 992 00:55:11,500 --> 00:55:15,340 そして、それは難しくなります 他のもののためのメモリを検索します。 993 00:55:15,340 --> 00:55:19,455 だからではなく、これを実行する必要がある場合は、もし あなたは、一端からベクトルを成長させるために必要 994 00:55:19,455 --> 00:55:24,240 次に、それに追加する代わりに、 常に、あなたはそれを事前に割り当てる必要があります。 995 00:55:24,240 --> 00:55:29,310 VEC矢印、ベクトル長 千、または何に等しいです。 996 00:55:29,310 --> 00:55:33,200 >> そして、あなただけ割り当てることができます ベクトルの値を1に 997 00:55:33,200 --> 00:55:36,000 あなたが一度割り当てられた後の時間。 998 00:55:36,000 --> 00:55:40,140 私は、もう一度、このに私の夏のジョブを実行し 私は、NRAの差を書いていたとき 999 00:55:40,140 --> 00:55:42,120 方程式ソルバ。 1000 00:55:42,120 --> 00:55:43,180 数値象徴されていません。 1001 00:55:43,180 --> 00:55:49,290 アイデアは、一度あなたが持っているということです あなたのソリューションのための1つの値、 1002 00:55:49,290 --> 00:55:51,240 あなたは、次のいずれかを計算するためにそれを使用。 1003 00:55:51,240 --> 00:55:53,700 そこで、私の自然な素朴な 傾きがOKと言うことでした、 1004 00:55:53,700 --> 00:55:56,930 私は、ベクターから始めましょう それはかなりの値です。 1005 00:55:56,930 --> 00:56:01,260 その次の値から計算します それが、私の解ベクトルに進みます 1006 00:56:01,260 --> 00:56:02,630 し、それを追加します。 1007 00:56:02,630 --> 00:56:05,290 >> 何か他のものを作成し、それを追加します。 1008 00:56:05,290 --> 00:56:08,120 それは非常に、非常にゆっくりと行ってきました。 1009 00:56:08,120 --> 00:56:11,540 そして、私はこれを実現したら、 私は私のシステムを変更しました 1010 00:56:11,540 --> 00:56:16,020 このベクトルに追加するから 10,000〜100,000倍のように、 1011 00:56:16,020 --> 00:56:18,910 ちょうどベクトルを事前に割り当てるに そしてそれだけで実行されています。 1012 00:56:18,910 --> 00:56:22,100 私は、1,000以上の倍のスピードアップを得ました。 1013 00:56:22,100 --> 00:56:26,280 だから、これは非常に一般的です Rプログラミングのためのトラップ。 1014 00:56:26,280 --> 00:56:31,560 あなたは、ベクターを構築する必要がある場合 少しずつ、それを事前に割り当てます。 1015 00:56:31,560 --> 00:56:35,360 1016 00:56:35,360 --> 00:56:40,240 >> このup--別の一般的な旅行が私の最後のものです スライド、worry--はありませんが、エラー処理です。 1017 00:56:40,240 --> 00:56:42,890 Rは、率直に言って、ありません 実際には非常によくこれを行います。 1018 00:56:42,890 --> 00:56:45,010 がたくさんあり​​ます 最大切り抜くことができます問題。 1019 00:56:45,010 --> 00:56:48,360 たとえば、配列を取得する場合 または機能のうちベクトル 1020 00:56:48,360 --> 00:56:52,377 あなたは、単一のを期待していること 来る値、またはその逆、 1021 00:56:52,377 --> 00:56:55,460 あなたはその関数の中にそれを渡します あなたは、単一の値を期待して書きました、 1022 00:56:55,460 --> 00:56:57,270 それが問題になることがあります。 1023 00:56:57,270 --> 00:57:01,440 >> 特定の機能 そうであるように、たとえば、nullを返します 1024 00:57:01,440 --> 00:57:05,560 からの読み込み リスト内に存在しないキー。 1025 00:57:05,560 --> 00:57:08,527 しかし、nullは、Cのようではありません どこに読むことをしようとした場合 1026 00:57:08,527 --> 00:57:11,360 古いポインタから、[聞こえません] ポインタをNULLに、それだけで障害をSEG 1027 00:57:11,360 --> 00:57:14,109 あなたは、あなたのデバッガにいる場合に あなたがいる場所を正確に確認できます。 1028 00:57:14,109 --> 00:57:17,080 1029 00:57:17,080 --> 00:57:20,772 機能をdo--ます代わりに、ヌル 予測不可能なことを行います 1030 00:57:20,772 --> 00:57:21,730 彼らは利きヌルなら。 1031 00:57:21,730 --> 00:57:24,575 あなたは最大ヌルを渡されている場合と同様に、 それはあなたの負の無限大を与えるでしょう。 1032 00:57:24,575 --> 00:57:27,230 1033 00:57:27,230 --> 00:57:28,190 そしてそう、ええ。 1034 00:57:28,190 --> 00:57:30,880 1035 00:57:30,880 --> 00:57:32,630 そして、これが起こりました 私にはかつて私が持っていたとき 1036 00:57:32,630 --> 00:57:34,771 フィールドの束を変更 私のリスト構造で 1037 00:57:34,771 --> 00:57:37,520 一度別の場所に変更することなく、 とき、私は彼らから読んでいました。 1038 00:57:37,520 --> 00:57:40,670 そして私は、ランダムなすべての種類を持って 無限の結果は、最大トリミング 1039 00:57:40,670 --> 00:57:43,080 私は彼らから来た全く分かりません。 1040 00:57:43,080 --> 00:57:45,310 そして残念ながら、あります 本当のR strictモードません 1041 00:57:45,310 --> 00:57:48,940 何かあればあなたが言うことができる場所 それが誤りである可能性があるように見えます、 1042 00:57:48,940 --> 00:57:51,960 私がすることができますので、ちょうどそこに停止 規律とそれを修正します。 1043 00:57:51,960 --> 00:57:55,282 1044 00:57:55,282 --> 00:57:57,240 しかし、何かがあります 停止しない場合に呼び出さ。 1045 00:57:57,240 --> 00:58:00,480 これは、Cのアサートに相当し、 あなたはそのことについて話をした場合。 1046 00:58:00,480 --> 00:58:02,690 私はCが主張するとは思いません 講義トピックがあり、 1047 00:58:02,690 --> 00:58:06,370 しかし、あなたのセクションリーダー その上に行っている可能性があります。 1048 00:58:06,370 --> 00:58:10,393 基本的にはどのように取るされていない場合と停止 述語なので、任意のステートメントこと 1049 00:58:10,393 --> 00:58:11,824 trueまたはfalseです。 1050 00:58:11,824 --> 00:58:13,490 それが偽なら、それはそのプログラムを停止します。 1051 00:58:13,490 --> 00:58:18,260 それはあなたのラインを正確に説明します 上だったとどのような条件が失敗しました。 1052 00:58:18,260 --> 00:58:21,910 >> そして、この非常に便利な、例えば、 健全性チェック、関数入力。 1053 00:58:21,910 --> 00:58:25,110 だから、あなたが機能を持っている場合 あなたは、たとえば、期待します 1054 00:58:25,110 --> 00:58:29,640 あなたが私に日付を与える必要がある場合は、私が欲しいです 日付は長さ1のベクトルであるだけ 1055 00:58:29,640 --> 00:58:31,735 どこか1と31の間。 1056 00:58:31,735 --> 00:58:34,420 1057 00:58:34,420 --> 00:58:36,170 そうでない場合、私は知っています 何かが間違っています。 1058 00:58:36,170 --> 00:58:40,280 そして、私はこの前に、そこに停止することを選択します コー​​ドを使用して効果に関するランダムノックを持っています 1059 00:58:40,280 --> 00:58:44,190 それが難しくなっていることをトレースします。 1060 00:58:44,190 --> 00:58:47,170 だから、可能な一つです ない場合は、停止するために使用します。 1061 00:58:47,170 --> 00:58:48,660 >> [OK]を、とにかく。 1062 00:58:48,660 --> 00:58:49,690 だから、終わりです。 1063 00:58:49,690 --> 00:58:51,290 今後のためにありがとうございました。 1064 00:58:51,290 --> 00:58:53,710 私はこの時、ランク素人です。 1065 00:58:53,710 --> 00:58:57,270 あなたが退屈しているのであれば申し訳ありませんか 混乱または何を持っています。 1066 00:58:57,270 --> 00:59:01,670 私は、電子メールで質問をお受けすることが幸せです connorharris@college.harvard.eduで。 1067 00:59:01,670 --> 00:59:07,230 これは誰にとっても行きます これが後に生きるか、見て。 1068 00:59:07,230 --> 00:59:10,190 また、しかし私はないんだけど TF、私も非常にしています 1069 00:59:10,190 --> 00:59:13,900 非公式として機能して喜ん だ、誰のための顧問 1070 00:59:13,900 --> 00:59:15,460 最終的なプロジェクトにRを使用。 1071 00:59:15,460 --> 00:59:19,900 >> あなたはそれにたい場合は、 その後、ちょうどあなたのTFに話します 1072 00:59:19,900 --> 00:59:23,750 そしてそのように私にメールを書きます 私は、あなたが取り組んでいるものを知っています 1073 00:59:23,750 --> 00:59:26,680 そして私は、会議を設定することができます 必要に応じてあなたと回。 1074 00:59:26,680 --> 00:59:27,990 だからもう一度、どうもありがとうございました。 1075 00:59:27,990 --> 00:59:28,960 私はあなたがそれを楽しんだことを望みます。 1076 00:59:28,960 --> 00:59:29,450 >> 聴衆:[聞こえません]。 1077 00:59:29,450 --> 00:59:30,617 >> CONNER HARRIS:もちろん。 1078 00:59:30,617 --> 00:59:34,910 >> 聴衆:プロジェクトのどのような CSの学生がためにRを使うのでしょうか? 1079 00:59:34,910 --> 00:59:37,427 1080 00:59:37,427 --> 00:59:40,510 CONNER HARRIS:だからあなたがいない場合 データマイニングでは、純粋に何か、 1081 00:59:40,510 --> 00:59:43,790 例えば、そこに 物事の多くは、 1082 00:59:43,790 --> 00:59:46,692 あなたは、データとそれに行うことができます 鉱業、機械学習。 1083 00:59:46,692 --> 00:59:48,900 あなたがのためにRを使用する場合があります 何かの部品。 1084 00:59:48,900 --> 00:59:52,022 私は、もともと、例を育てました あなたがウェブサイトを書いているのならば 1085 00:59:52,022 --> 00:59:54,730 あなたは自動実行したいです サーバーの統計分析 1086 00:59:54,730 --> 00:59:57,990 特定の時点でのログ毎日、 それは何かであるかもしれません 1087 00:59:57,990 --> 01:00:01,260 ただ簡単に行うことは非常に簡単 あなたがスケジュールすることができますRスクリプト 1088 01:00:01,260 --> 01:00:04,200 例えば、毎晩実行します。 1089 01:00:04,200 --> 01:00:06,550 >> そして、私は、もし確信しています あなたがしたい任意の理由があります 1090 01:00:06,550 --> 01:00:11,520 統計やグラフ機能が欲しいです その代わりに、自動的にこの実行を持っています 1091 01:00:11,520 --> 01:00:13,790 対話することの Excelでのものと、 1092 01:00:13,790 --> 01:00:16,750 例えば、それは何か あなたはRを使用する場合があります。 1093 01:00:16,750 --> 01:00:21,190 だから私の前にそれ以上の質問がまま? 1094 01:00:21,190 --> 01:00:21,690 なし? 1095 01:00:21,690 --> 01:00:24,960 すべての権利、よく、再び、感謝 あなた来るために非常に多くを。 1096 01:00:24,960 --> 01:00:29,417