裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

ダメ出し:R で学ぶデータ・プログラミング入門 ―RStudioを活用する― その3

2012年12月06日 | ブログラミング

● 104 ページ 上から 2 行目
検索をかけて → 検索して

● 107 ページ 上から 4 行目
関数ですので → 関数なので

● 107 ページ 最下行
作図領域の外の → 描画領域の外の

● 109 ページ 1 行目
プロットの形状を → プロット記号の形状

● 109 ページ 上から 2 行目
4.6 節に紹介 → 4.6 節で紹介

● 109 ページ 上から 4 行目
サイズは cex に → サイズは cex で

● 110 ページ コラムの上から 3 行目
長い警告
 確かに長いけど,『「長いオブジェクトの長さが」云々という警告』といいたかったのかな?

● 110 ページ コラムの下
これに対して
 唐突感。前に戻ってみたら『「高水準グラフィック関数」に対して』ということなんだなあ。

● 110 ページ 下から 2 行目
第 1 引数で指定した座標点に
 これは知らなかった。でも,ちょっと特殊な例では?

● 117 ページ 下から 3 行目
花びら(Sepal)およびガク(Petal)の横幅 → 花びら(Petal)およびガク(Sepal)の

● 121 ページ 上から 3 行目
インストールされていませんので → インストールされていないので

● 124 ページ 上から 1 行目
いますので → いるので

● 128 ページ 上から 4 行目
横軸のカテゴリに順序があります
 ヒストグラムの階級をカテゴリといっても構わないとは思うし,確かに順序はあるが,大きな違いは,「横軸は連続変数である」ということでしょう。

● 128 ページ 下から 8 行目
「高さ」を 5 フィートの区分に分け → 「高さ」を階級幅 5 フィートの階級に分け

● 128 ページ 下から 7 行目
実は hist() 関数を実行した際, → 実行例は hist() 関数を用いた際に

● 129 ページ 上から 12 行目
区間分けの情報 → 階級分けの情報

● 129 ページ 最下行
多くの場合,丸括弧を省き,関数名だけを → 多くの場合,関数名だけを

● 130 ページ 下から 4 行目
桁を切り上げます → その数より大きい最小の整数を返します

● 133 ページ 上から 8 行目
信頼区間とは,中央値が 95% の割合で位置する範囲 → 信頼区間とは,同様の手続きで中央値の存在範囲を推定したとき 100 回中 95 回はその範囲に母中央値が含まれる区間を表しています。
 表現が難しいけど。11 ~ 13 行もまずい。
 183 ページの説明は正しい。

● 133 ページ 下から 6 行目
A, B, ..., F と → A, B, ..., F の

● 135 ページ 上から 3 行目
この場合, → このようにした場合は,

● 143 ページ 上から 1 行目
データ分析について → データ解析について

● 144 ページ 上から 6 行目
痩せることのできる → 痩せることができる

● 144 ページ 上から 9 行目
半キロ → 0.5 キロ

● 144 ページ 下から 9 行目
300 世帯 → 600 世帯
 いつの頃からか,関東地方では 600 世帯を対象にするようになっているはず

● 145 ページ 下から 14 行目
 この視聴率の信頼区間の説明は 133 ページと同じく,まずい

● 145 ページ 下から 7 行目
行います → 始めます

● 146 ページ 上から 1 行目
男女それぞれの数 → 男女それぞれの人数

● 147 ページ 下から 9 行目
単位が絶対的な原点とはならないからです → 単位に絶対的な原点がないからです

● 147 ページ 下から 2 行目
カテゴリカル変数 → カテゴリー変数

● 149 ページ 下から 5 行目
桁数を大きく取れば → 桁数を多く取れば または 桁数をたくさん取れば

● 149 ページ 下から 2,3 行目
連続量データ 離散値データ → 連続データ 離散データ

● 151 ページ 上から 12 行目
プログラミング言語では長さともいいます → ベクトルの長さともいいます
 他の言語ではしいて言えば,サイズとかいいませんか?

● 150 ページ 下から 3 行目
並び替えて → 並べ替えて

● 154 ページ 上から 5 行目
これが分散(variance)です
 中央値と四分位範囲の関係からいえば,平均と対応するのは標準偏差でしょう(後の方にはそう書いてあるし)

● 154 ページ 上から 10 行目
以下で定義を,文章と数式のそれぞれで示します → 以下で,文章と数式のそれぞれで定義を示します

● 155 ページ 上から 13 行目
データ数から 1 を引いた結果を求めています → データ数から 1 を引いた数で割って結果を求めています

● 157 ページ 最終行
ヒストグラムの区間を → ヒストグラムの級限界を

● 158 ページ 上から 1 行目
区間に属するデータ数 → 階級に属するデータ数

● 160 ページ 下から 3 行目
ひえ → ヒエ

● 163 ページ 下から 14 行目
ヒストグラムを作成してみましょう
 ヒストグラムは不適切。離散データなのだから barplot 関数を使うべき。

● 169 ページ 上から 9 行目
データは以下でした → データは以下のようでした

● 169 ページ 下から 3 行目
という数値が → というような数値が

まだおわんない...

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ダメ出し:R で学ぶデータ・プログラミング入門 ―RStudioを活用する― その2

2012年12月06日 | ブログラミング

● 66 ページ 上から 10 行目
そこで以下, → そこで以下

● 69 ページ 中程の 2 つのプログラム片
tmp <- 0
for (i in 1:3) {
  for (j in 1:3) {
    tmp <- tmp+x[i, j]
  }
  print(tmp)
  tmp <- 0
}
  ↓
for (i in 1:3) {
  tmp <- 0
  for (j in 1:3) {
    tmp <- tmp+x[i, j]
  }
  print(tmp)
}

tmp <- 0
for (i in 1:3) {
  for (j in 1:3) {
    tmp <- tmp+x[j, i]
  }
  print(tmp)
  tmp <- 0
}
  ↓
for (i in 1:3) {
  tmp <- 0
  for (j in 1:3) {
    tmp <- tmp+x[j, i]
  }
  print(tmp)
}
 適切なときに適切に初期化する

● 70 ページ 上から 2 行目
任意の演算子ないし関数 → 任意の関数
 "+" は演算子ではなく関数

● 76 ページ 上から 2 行目
 地の文で文字列をくくる引用符がここだけちゃんと“ ”になっている(そうあるべきなのだが)。ほかは全部 ” ”になっていて,気持ち悪いことこの上ない。せめて " " ならまだしも。

● 77 ページ 上から 2 行目
関数か@演算子 → 関数か @ 演算子
 漢字・ひらがなと英字・記号がくっつきすぎているところが散見される。

● 79 ページ 下から 14 行目
行列みなされる → 行列とみなされる

● 79 ページ 下から 13 行目
関数を 1 行 9 列と扱う → 関数を使って 1 行 9 列として扱う

● 80 ページ 下から 14 行目 最後の 2 行も関連で
第 3 引数に演算子を指定 → 第 3 引数に演算を表す関数を指定
 第 3 引数に指定するのは関数。

● 79 ページから始まる九九表の作成プログラム
最終的に,
paste(outer(1:9, 1:9, paste, sep="*"), outer(1:9, 1:9, "*"), sep="=")
として,82 ページのコラムの上で,「なお上記の出力では,横幅が足りないために,"9*9=81" が最後に行送りされています」と書いている。
生成されるのがベクトルなんだから,横幅を制御して 9 行 9 列にしようというのは何だろう(コラムでは 83 ページの下に「width を 90 に設定するのが適切でしょう」と書いている)。
せめて,この結果を matrix 関数で 9 行 9 列にすべきだろう。
matrix(paste(outer(1:9, 1:9, paste, sep="*"), outer(1:9, 1:9, "*"), sep="="), 9)
しかし,そもそも,outer を 2 回使う必要はない。第 3 引数には 2 つの引数が渡されるので,無名関数を使えば,その引数は何回でも使える。
ということで,以下のように単純明快に書ける。
outer(1:9, 1:9, function(x, y) sprintf("%i*%i=%i", x, y, x*y))
      [,1]    [,2]     [,3]     [,4]     [,5]     [,6]     [,7]     [,8]     [,9]    
 [1,] "1*1=1" "1*2=2"  "1*3=3"  "1*4=4"  "1*5=5"  "1*6=6"  "1*7=7"  "1*8=8"  "1*9=9"
 [2,] "2*1=2" "2*2=4"  "2*3=6"  "2*4=8"  "2*5=10" "2*6=12" "2*7=14" "2*8=16" "2*9=18"
 [3,] "3*1=3" "3*2=6"  "3*3=9"  "3*4=12" "3*5=15" "3*6=18" "3*7=21" "3*8=24" "3*9=27"
 [4,] "4*1=4" "4*2=8"  "4*3=12" "4*4=16" "4*5=20" "4*6=24" "4*7=28" "4*8=32" "4*9=36"
 [5,] "5*1=5" "5*2=10" "5*3=15" "5*4=20" "5*5=25" "5*6=30" "5*7=35" "5*8=40" "5*9=45"
 [6,] "6*1=6" "6*2=12" "6*3=18" "6*4=24" "6*5=30" "6*6=36" "6*7=42" "6*8=48" "6*9=54"
 [7,] "7*1=7" "7*2=14" "7*3=21" "7*4=28" "7*5=35" "7*6=42" "7*7=49" "7*8=56" "7*9=63"
 [8,] "8*1=8" "8*2=16" "8*3=24" "8*4=32" "8*5=40" "8*6=48" "8*7=56" "8*8=64" "8*9=72"
 [9,] "9*1=9" "9*2=18" "9*3=27" "9*4=36" "9*5=45" "9*6=54" "9*7=63" "9*8=72" "9*9=81"
sprintf 関数なんて持ち出したくないなあということならば,paste 関数で以下のごとく。
outer(1:9, 1:9, function(x, y) paste(x, "*", y, "=", x*y, sep=""))

● 83 ページ 下から 15 行目
小数点以下の桁数の指定 → 有効数字の指定
 デフォルトの状態で 12.345678 と 123.45678 を入力してみるとわかる

● 92 ページ 上から 14 行目 及び関連して下から 7 行
文字列を操作する方法を正規表現といいます → 文字列を指定する方法を正規表現といいます

● 93 ページ 上から 14 行目
パターンを探すのが → パターンを表すのが

● 93 ページ 上から 17 行目
文字列全体を指定 → 文字列を指定

● 93 ページ 下から 2 行目
空白(””) → (””)

● 95 ページ 上から 15 行目
もとのベクトルで位置番号 → もとのベクトルでの位置番号

● 95 ページ 上から 19 行目
関数そのものを添え字に → 関数の結果を添え字

● 95 ページ 上から 21 行目
全ての列をそのまま残すという意味 → その行全部という意味

● 96 ページ 上から 15 行目
データフレームを列で並び替えを行う → データフレームを特定の列の値の順序で並べ替えを行う

● 97 ページ 上から 14 行目
指定した順に → 指定した変数の値の順に

● 97 ページ 上から 15 行目
name で重複する要素 → name の値が同順位の要素

● 98 ページ 下から 15 行目
間にカンマを挟めば → カンマで区切れば

まだつづく...

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村