Skip to content

Commit

Permalink
Reflect feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
zettsu-t committed Jan 7, 2022
1 parent e0c15df commit d6f98c0
Showing 1 changed file with 21 additions and 3 deletions.
24 changes: 21 additions & 3 deletions r_in_30minutes.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ to_embedded_table <- function(df) {

本文書の [GitHubレポジトリ](https://github.com/zettsu-t/Rin30minutes) に、インストール手順があるのでそれに従う。

準備ができたら、以下のコードを RStudio の Console に順に入力して実行する。Rスクリプトを実行するときは、拡張 .R のファイルにコードを書いて、シェルから Rscript を起動する。
準備ができたら、以下のコードを RStudio の Console に順に入力して実行する。Rスクリプトを実行するときは、拡張子 .R のファイルにコードを書いて、シェルから Rscript を起動する。

## プログラミング言語Rの基本

Expand All @@ -114,7 +114,7 @@ to_embedded_table <- function(df) {
2 + TRUE
```

NA (欠測値 : missing value) と、変数に対応するオブジェクトが無い (NULL) ことを区別する。変数がNAかどうかは `is.na` で、NULLかどうかは `in.null` で調べる。これらの細かい仕様は省略する。
NA (欠測値 : missing value) と、変数に対応するオブジェクトが無い (NULL) ことを区別する。変数がNAかどうかは `is.na` で、NULLかどうかは `is.null` で調べる。これらの細かい仕様は省略する。

```{r is_na, class.source="r-code", class.output="r-output"}
is.na(0)
Expand Down Expand Up @@ -225,7 +225,7 @@ c(10, 20, 30) + c(4, 5, 6)
max(c(10, 20, 30))
```

2つのベクトルの要素ごとの max を取りたい、つまり map したいなら、 `pmax` を使う。
2つのベクトルの要素ごとの max を取りたい、つまり map したいなら、 `pmax` を使う。 `pmax` は長さ(要素数)nである単一または複数のベクトルの、第1要素同士を比べて最も大きい値, 第2要素同士を比べて最も大きい値 ... , 第n要素同士を比べて最も大きい値を返す。

```{r pmax_vectors, class.source="r-code", class.output="r-output"}
pmax(c(10, 2, 30), c(4, 50, 6))
Expand Down Expand Up @@ -736,6 +736,24 @@ purrr::map_chr(50:52, function(x) {
invisible(1:20000)
```

### 集合演算

二つのベクトルA, Bについて、和集合(A, Bの少なくとも片方に属する要素)、積集合(A, B の両方に属する要素)、差集合(A=左にあって、B=右にない要素)を、それぞれ `union`, `intersect`, `setdiff` で求める。 setdiff は非対称なので、引数を入れ替えると結果が変わることがある。

```{r set_operations, class.source="r-code", class.output="r-output"}
union(1:4, 3:7)
intersect(1:4, 3:7)
setdiff(1:4, 3:7)
setdiff(3:7, 1:4)
```

ベクトルAの各要素がベクトルBに含まれているかどうかを調べるために、 `A %in% B` を使うと、含まれている=TRUE または 含まれていない=FALSE からなるベクトルを返す。演算子のヘルプを見るには、 `` ?`%in%` `` というように演算子を ` (backtick) で囲む。

```{r in_operator, class.source="r-code", class.output="r-output"}
1:7 %in% 3:4
3:4 %in% 1:7
```

### 日時と時刻

日時(date)と時刻(timestamp)を上手く扱うのは難しいので、よくできたパッケージを上手に使いこなす。一年の初めからどれだけの割合(0以上1以下)が経過したか指定すると、その日時を表示する関数を作る。うるう年は考慮するがうるう秒は考慮しない。あるツイートにあった、[1月4日のお昼には、もう2021年の「1%」が経過している](https://twitter.com/kuina_ch/status/1344513191707963392)のは本当だろうか?
Expand Down

0 comments on commit d6f98c0

Please sign in to comment.