From e0dae76d94f7962078a6c292763e0b787a635a6e Mon Sep 17 00:00:00 2001 From: rikutakei Date: Sat, 4 Apr 2020 22:02:50 +1300 Subject: [PATCH] Review for r-novice-gapminder: episode 7 --- po/r-novice-gapminder.ja.po | 113 +++++++++++++++++++----------------- 1 file changed, 59 insertions(+), 54 deletions(-) diff --git a/po/r-novice-gapminder.ja.po b/po/r-novice-gapminder.ja.po index 90a7126b..55e3f7a0 100644 --- a/po/r-novice-gapminder.ja.po +++ b/po/r-novice-gapminder.ja.po @@ -11100,7 +11100,7 @@ msgid "" "Alternatively, we can also set an action to occur a particular number of times." msgstr "" "コードを書く際、実行の流れを制御する必要がよくあります。\n" -"これは、ある条件、または一連の条件が満たされたときに、実行されるようにすればできます。\n" +"これは、ある条件、または一連の条件が満たされたときに実行されるようにすればできます。\n" "あるいは、決まった回数実行されるよう設定することもできます。" #: r-novice-gapminder/_episodes/07-control-flow.md:25 @@ -11109,7 +11109,7 @@ msgid "" "For conditional statements, the most commonly used approaches are the constructs:" msgstr "" "Rでは、流れを制御する方法がいくつかあります。\n" -"条件付きの宣言で、最もよく使われるのが「構文(constructs)」です:" +"条件付きの宣言で、最もよく使われるのが構文(constructs)です:" # code block #: r-novice-gapminder/_episodes/07-control-flow.md:29 @@ -11135,10 +11135,10 @@ msgstr "" "}\n" "\n" "# if ... else\n" -"if (condition is true) {\n" -" perform action\n" -"} else { # that is, if the condition is false,\n" -" perform alternative action\n" +"if (condition is true) { # 条件が満たされた場合\n" +" アクションを行う\n" +"} else { # つまり、条件が満たされなかった場合\n" +" 別のアクションを行う\n" "}\n" "~~~" @@ -11182,7 +11182,7 @@ msgstr "" #: r-novice-gapminder/_episodes/07-control-flow.md:65 msgid "The print statement does not appear in the console because x is not greater than 10. To print a different message for numbers less than 10, we can add an `else` statement." -msgstr "xは、10より大きくないため、表示された宣言はコンソール上に表示されません。10より小さい場合に違ったメッセージを表示させるためには、 `else` 宣言を追加しなければなりません。" +msgstr "xは10より大きくないため、表示された宣言はコンソール上に表示されません。10より小さい場合に違ったメッセージを表示させるためには、 `else` 宣言を追加しなければなりません。" # code block #: r-novice-gapminder/_episodes/07-control-flow.md:68 @@ -11266,7 +11266,7 @@ msgid "" "looking for a logical element, i.e., `TRUE` or `FALSE`. This can cause some\n" "headaches for beginners. For example:" msgstr "" -"**重要:** Rが `if()` 宣言の中の条件を計算する際、論理要素( `TRUE` or `FALSE` )を探します。\n" +"**重要:** Rが `if()` 宣言の中の条件を計算する際、論理要素( `TRUE` か `FALSE` )を探します。\n" "初心者には複雑なので、混乱してしまうかもしれません。例えば:" # code block @@ -11303,7 +11303,7 @@ msgstr "" #: r-novice-gapminder/_episodes/07-control-flow.md:131 msgid "As we can see, the not equal message was printed because the vector x is `FALSE`" -msgstr "ここで見たように、ベクトルxが `FALSE` であるので、不等号のメッセージが表示されたのです。" +msgstr "ここで見られるように、ベクトル x が `FALSE` であるため、不等号のメッセージが表示されました。" # code block #: r-novice-gapminder/_episodes/07-control-flow.md:134 @@ -11444,7 +11444,7 @@ msgid "" "element. Here you need to make sure your condition is of length 1." msgstr "" "もし、1つ以上の要素を持つベクトルを評価する条件の場合、\n" -"関数 `if()` は走るのですが、最初の要素の条件しか評価しません。\n" +"関数 `if()` は実行されるのですが、最初の要素の条件しか評価しません。\n" "ここでは、確実に条件の長さは1であるようにする必要があります。" # blockquote, which can be cascaded @@ -11462,7 +11462,7 @@ msgid "" "> the vector are `TRUE`." msgstr "" ">\n" -"> `any()` 関数は、少なくとも1つ `TRUE` の値がある場合、 `TRUE` を返し、\n" +"> `any()` 関数は、ベクトルの中に少なくとも1つ `TRUE` の値がある場合、 `TRUE` を返し、\n" "> そうでない場合は、 `FALSE` を返します。\n" "> これは、 `%in%` 演算子でも同様に使えます。\n" "> 関数 `all()` は、その名前が示唆しているように、ベクトル内の全ての値が `TRUE` である時のみ、\n" @@ -11488,8 +11488,8 @@ msgstr "" " `for()` ループを使いましょう。\n" " `for()` ループは、先ほどシェルのレッスンで見ましたね。これは、最も柔軟な\n" "ループの演算子ですが、それゆえ、正しく使うのが最も難しいです。\n" -"繰り返す順番が重要(つまり直前の繰り返しの結果をもとに、次々と\n" -"繰り返しの演算行われる形)でない限り、 `for()` ループを使うのを避けましょう。" +"繰り返す順番が重要(つまり直前の繰り返しの結果をもとに、次\n" +"の演算を行う場合)でない限り、 `for()` ループを使うのを避けましょう。" #: r-novice-gapminder/_episodes/07-control-flow.md:228 msgid "The basic structure of a `for()` loop is:" @@ -11512,7 +11512,7 @@ msgstr "" #: r-novice-gapminder/_episodes/07-control-flow.md:238 msgid "For example:" -msgstr "例:" +msgstr "例えば:" # code block #: r-novice-gapminder/_episodes/07-control-flow.md:241 @@ -11562,13 +11562,17 @@ msgstr "" msgid "" "The `1:10` bit creates a vector on the fly; you can iterate\n" "over any other vector as well." -msgstr " `1:10` の部分は、ベクトルをその場で作るもので、他のベクトルの間中、繰り返すこともできます。" +msgstr "" +"`1:10` の部分は、ベクトルをその場で作るものです。\n" +"他のベクトルの中身を繰り返すこともできます。" #: r-novice-gapminder/_episodes/07-control-flow.md:267 msgid "" "We can use a `for()` loop nested within another `for()` loop to iterate over two things at\n" "once." -msgstr " `for()` ループを、もうひとつの `for()` ループと入れ子となる形にすれば、2つのことを同時に繰り返すこともできます。" +msgstr "" +"`for()` ループを、もうひとつの `for()` ループと入れ子となる形にすれば、\n" +"2つ同時に繰り返すこともできます。" # code block #: r-novice-gapminder/_episodes/07-control-flow.md:271 @@ -11650,7 +11654,7 @@ msgstr "" #: r-novice-gapminder/_episodes/07-control-flow.md:311 msgid "Rather than printing the results, we could write the loop output to a new object." -msgstr "結果を表示させずに、ループの結果を新しいオブジェクトとして書くこともできます。" +msgstr "結果を表示させずに、ループの結果を新しいオブジェクトに書き込むこともできます。" # code block #: r-novice-gapminder/_episodes/07-control-flow.md:314 @@ -11699,7 +11703,7 @@ msgid "" "it when you are iterating through a lot of values." msgstr "" "このアプローチが役に立つこともありますが、'結果を太らせる' (結果のオブジェクトを\n" -"段々積み上げる)と、演算する上で非効率になります。\n" +"徐々に積み上げる)と、演算する上で非効率になります。\n" "ゆえに、多くの値の間を繰り返すときは避けましょう。" # blockquote, which can be cascaded @@ -11721,15 +11725,15 @@ msgid "" "> store the results in the appropriate location." msgstr "" ">\n" -"> 初心者と経験のあるRユーザーの両方の足を引っ張るループの使い方の一つとして、\n" -"> 結果のオブジェクト(ベクトル、リスト、行列、データフレーム)をループするたびに作ってしまうという\n" -"> ことがあります。\n" +"> 初心者、そして経験のあるRユーザーがよくつまずいてしまう\n" +"> ループの使い方の一つが、結果のオブジェクト\n" +">(ベクトル、リスト、行列、データフレームなど)をループするたびに作ってしまうことです。\n" "> コンピュータはこれを扱うのがとても下手で、すぐに計算が\n" -"> 遅くなります。適当な次元を持つ空の結果オブジェクトを\n" +"> 遅くなってしまいます。適当な次元を持つ空の結果オブジェクトを\n" "> 前もって宣言しておく方が効率的です。\n" -"> もし、上記の行列に蓄積される最後の結果が何になるかを知っていたら、\n" -"> 5行、5列の数列を作成しておいて、それぞれの繰り返しで、適切な場所へ結果を\n" -"> 蓄積しましょう。" +"> もし、上記のように、最後の結果が行列に蓄積されるのを知っていたら、\n" +"> 5行、5列の数列を作成しておいて、それぞれの繰り返しで適切な場所へ結果を\n" +"> 保存しましょう。" #: r-novice-gapminder/_episodes/07-control-flow.md:352 msgid "" @@ -11737,7 +11741,7 @@ msgid "" "For this example, it looks more involved, but is still more efficient." msgstr "" "よりよい方法は、(空の)出力オブジェクトを、値を埋める前に宣言することです。\n" -"この例では、より複雑に見えますが、それでもより効率的です。" +"この例では、より複雑に見えますが、より効率的です。" # code block #: r-novice-gapminder/_episodes/07-control-flow.md:356 @@ -11819,7 +11823,7 @@ msgid "" msgstr "" ">\n" ">\n" -"> ときには、ある条件が満たされるまで繰り返す必要がある場合に出くわすこともあるでしょう。\n" +"> 時には、ある条件が満たされるまで繰り返す必要があります。\n" "> これは、 `while()` ループを使えばできます。\n" ">\n" "> \n" @@ -11830,7 +11834,8 @@ msgstr "" "> ~~~\n" "> {: .language-r}\n" ">\n" -"> 例として、このwhileループは一様分布(`runif()` 関数)から0.1よりも小さい数を得るまで、\n" +"> 例として、このwhileループは\n" +"> 一様分布(`runif()` 関数)から0.1よりも小さい数を得るまで、\n" "> 0から1の間で乱数を生成します。\n" ">\n" "> ~~~\n" @@ -11854,7 +11859,7 @@ msgid "" msgstr "" ">\n" "> `while()` ループは、いつも適当であるとは言えません。特に、条件が決して満たされないことによる\n" -"> 無限ループに陥らないように特に注意する必要があります。" +"> 無限ループに陥らないように注意する必要があります。" #: r-novice-gapminder/_episodes/07-control-flow.md:413 msgid "" @@ -11914,9 +11919,9 @@ msgid "" "> > {: .language-r}" msgstr "" ">\n" -"> `output_vector` と `output_vector2` のオブジェクトを比較しましょう。\n" +"> `output_vector` と `output_vector2` のオブジェクトを比較してみましょう。\n" "> 同じですか?もし違ったら、なぜそうなったのでしょう?\n" -"> `output_vector2` の最後のコードのかたまりを `output_vector` と同じにするには、どう変えればよいでしょうか?\n" +"> `output_vector2` の最後のコードのかたまりを `output_vector` と同じにするには、どう変えればいいのでしょうか?\n" ">\n" "> > ## チャレンジ2の解答\n" "> > 2つのベクトルが同じかを調べるために、 `all()` 関数を使いましょう:\n" @@ -11937,30 +11942,30 @@ msgstr "" "> > all(output_vector2 %in% output_vector)\n" "> > ~~~\n" "> > {: .language-r}\n" -"> > それゆえ、`output_vector` と `output_vector2` の要素は、違う順番で蓄積されただけです。\n" -"> > この理由は、 `as.vector()` は列ごとに行列に要素を入力する形で出力するからです。\n" -"> > `output_matrix` を見てみると、要素を行ごとに欲しいということに気づくでしょう。\n" -"> > 解決方法は、 `output_matrix` を転置することです。転置関数 `t()` を呼ぶか、\n" +"> > ですので、`output_vector` と `output_vector2` の要素は、違う順番で蓄積されただけみたいです。\n" +"> > 理由は、 `as.vector()` は列ごとに行列から要素を出力するからです。\n" +"> > `output_matrix` を見てみると、要素を行ごとに出力して欲しいことに気づくでしょう。\n" +"> > 解決方法は、 `output_matrix` を転置することです。転置関数 `t()` を使うか、\n" "> > 要素を正しい順番で入力するか、いずれかの方法で対応可能です。\n" -"> > 最初の解決方法は、もともとのものを次の形で変更する必要があります:\n" +"> > 最初の解決方法は、元の形である\n" "> > \n" "> > ~~~\n" "> > output_vector2 <- as.vector(output_matrix)\n" "> > ~~~\n" "> > {: .language-r}\n" -"> > を、以下へ\n" +"> > を、次のように変えないといけません:\n" "> > \n" "> > ~~~\n" "> > output_vector2 <- as.vector(t(output_matrix))\n" "> > ~~~\n" "> > {: .language-r}\n" -"> > 二番目の解決方法は、次のように変える必要があります:\n" +"> > 二番目の解決方法は、以下を:\n" "> > \n" "> > ~~~\n" "> > output_matrix[i, j] <- temp_output\n" "> > ~~~\n" "> > {: .language-r}\n" -"> > を、以下へ。\n" +"> > 次のように変えます:\n" "> > \n" "> > ~~~\n" "> > output_matrix[j, i] <- temp_output\n" @@ -12031,7 +12036,7 @@ msgstr "" ">\n" "> > ## チャレンジ3の解答\n" "> >\n" -"> > **手順1**:大陸ベクトルから、確実に全ての唯一無二な値を抜き出せるかを確かめましょう。\n" +"> > **手順1**:大陸ベクトルから、確実に全ての固有の値を抜き出せるかを確かめましょう。\n" "> > \n" "> > ~~~\n" "> > gapminder <- read.csv(\"data/gapminder_data.csv\")\n" @@ -12040,10 +12045,10 @@ msgstr "" "> > {: .language-r}\n" "> >\n" "> > **手順2**:これらの大陸のそれぞれにループをし、その `部分集合` データごとに平均余命を出す必要があります。\n" -"> > それは次の形でできます:\n" +"> > それは次のようにすればできます:\n" "> >\n" -"> > 1. '大陸(continent)' の唯一無二の値のそれぞれについてループする\n" -"> > 2. 大陸のそれぞれの値ごとに、この部分集合の平均余命を蓄積する一時的な変数を作る\n" +"> > 1. '大陸(continent)' の固有の値のそれぞれについてループする\n" +"> > 2. 大陸のそれぞれの値ごとに、部分集合の平均余命を蓄積する一時的な変数を作る\n" "> > 3. 計算した平均余命を返し、 出力を表示させる:\n" "> >\n" "> > \n" @@ -12056,11 +12061,11 @@ msgstr "" "> > ~~~\n" "> > {: .language-r}\n" "> >\n" -"> > **手順3**:演習は、平均余命が50歳以上かどうかの結果だけを出力したいというものでした。\n" -"> > ゆえに、 `if` 条件を、表示させる前につける必要があります。これは、演算された平均余命が基準値以上か、基準値未満かを判別し、結果によって出力を表示させる必要があります。\n" -"> > 上から (3) を修正する必要があります:\n" +"> > **手順3**:この演習では、平均余命が50歳以上かどうかの結果だけを出力するものでした。\n" +"> > ゆえに、結果を表示させる前に `if` 条件をつけて、演算された平均余命が基準値以上か、基準値未満かを判別し、結果によって正しい出力を表示させる必要があります。\n" +"> > これを踏まえて、上の (3) を修正する必要があります:\n" "> >\n" -"> > 3a. もし計算された平均余命が、ある基準(50歳)未満の場合、大陸と、平均余命は基準未満であるという宣言を、そうでない場合は、大陸と、平均余命は基準値以上であるという宣言を返しなさい:\n" +"> > 3a. もし計算された平均余命が、ある基準(50歳)未満の場合、大陸と平均余命は基準未満であるという宣言を、そうでない場合は、大陸と平均余命は基準値以上であるという宣言を返す:\n" "> >\n" "> > \n" "> > ~~~\n" @@ -12113,8 +12118,8 @@ msgid "" "> > {: .language-r}" msgstr "" ">\n" -"> チャレンジ3のスクリプトをそれぞれの国とごとにループする形で修正しなさい。\n" -"> 今回は、平均余命は、50歳未満か、50歳以上70歳未満か、70歳以上かを\n" +"> チャレンジ3のスクリプトをそれぞれの国ごとにループする形に直してください。\n" +"> 今回は、平均余命は50歳未満か、50歳以上70歳未満か、70歳以上かを\n" "> 表示しましょう。\n" ">\n" "> > ## チャレンジ4の解答\n" @@ -12206,14 +12211,14 @@ msgid "" msgstr "" ">\n" "> `gapminder` データセットで、それぞれの国ごとにループするスクリプトを書き、\n" -">国が 'B' で始まるかどうかをテストし、平均余命が50歳以下の場合、平均余命を\n" +"> 国が 'B' で始まるかどうかをテストし、平均余命が50歳以下の場合、平均余命を\n" "> 時間ごとの移り変わりで示した線グラフを書きましょう。\n" ">\n" "> > ## チャレンジ5の解答\n" "> >\n" "> > シェルのレッスンで紹介した`grep` コマンドを「B」で始まる国を見つけるために使います。\n" -"> > まず、これをどういうふうにするかを理解しましょう。\n" -"> > シェル節に従って、以下を試してみたいと思うかもしれません:\n" +"> > まず、これをどうやって使うかを理解しましょう。\n" +"> > シェル節に従って、以下を試してみようと思うかもしれません:\n" "> > \n" "> > ~~~\n" "> > grep(\"^B\", unique(gapminder$country))\n" @@ -12221,7 +12226,7 @@ msgstr "" "> > {: .language-r}\n" "> >\n" "> > でも、このコマンドを演算すると、順序なし因子変数 `country` の「B」で始まる要素番号を返します。\n" -"> > 値を得るためには、 `grep` コマンドの、`value=TRUE` オプションを加える必要があります:\n" +"> > 値を得るためには、 `grep` コマンドの`value=TRUE` オプションを加える必要があります:\n" "> >\n" "> > \n" "> > ~~~\n" @@ -12229,7 +12234,7 @@ msgstr "" "> > ~~~\n" "> > {: .language-r}\n" "> >\n" -"> > これらの国々をcandidateCountriesと呼ぶ変数に蓄積し、その変数のそれぞれでループするようにしましょう。\n" +"> > これらの国々をcandidateCountriesと呼ぶ変数に蓄積し、その変数のそれぞれをループするようにしましょう。\n" "> > そのループの中で、それぞれの国の平均余命を演算子、もし平均余命が50歳未満でったら、平均余命の進展をみるために、`with()` と`subset()`を使い、base-plotを用いてプロットしましょう:\n" "> >\n" "> > \n"