# `:` 演算子を使って、変数 my_vector に1から20までの整数を代入してください。
# my_vector <- .......

# my_vectorの内容を表示させてください。

# my_vectorの長さ(数値の数)を確認するコマンド(関数)を入力してください。

# dim(my_vector) <- c(4, 5) を実行してください。
# 関数dim()は変数の大きさを確認するための他、変数の大きさを設定することにも使います。

# dim(my_vector)を実行してください。これでmy_vectorの大きさが確認できます。

# attributes(my_vector)も実行してください。同じことが確認できます。
# attributeとは属性を意味します。

# my_vectorを実行して中身を確認してください。
# 先ほどの dim(my_vector) <- c(4, 5)によりマトリックスに変わっています。

#     [,1] [,2] [,3] [,4] [,5]
#[1,]    1    5    9   13   17
#[2,]    2    6   10   14   18
#[3,]    3    7   11   15   19
#[4,]    4    8   12   16   20
#                と表示されましたか。

# 本当にマトリックスになっているかどうか、class(my_vector)を実行して確認してください。
#[1] "matrix”  と表示されましたか。


# 関数 matrix()を使って、マトリックスを作ってみます。
# 1から20までの整数を持つ4x5のマトリックスを作り、変数 matrix2に代入します。

my_matrix2 <- matrix(1:20, 4, 5)

# 先ほどのmy_matrixとmy_matrix2が同じ内容かどうかを確認するために
# identical(my_matrix, my_matrix2) を実行してください。

# 次に"Bill", "Gina", "Kelly", "Sean"の4人の名前を変数patientsへ代入します。

patients <- c("Bill", "Gina", "Kelly", "Sean")

# 次に、関数cbind()を使ってみます。
cbind(patients, my_matrix2)
##      patients                       
## [1,] "Bill"   "1" "5" "9"  "13" "17"
## [2,] "Gina"   "2" "6" "10" "14" "18"
## [3,] "Kelly"  "3" "7" "11" "15" "19"
## [4,] "Sean"   "4" "8" "12" "16" "20"
# 次に、関数cbind()を使ってみます。
cbind(patients, my_matrix2)
##      patients                       
## [1,] "Bill"   "1" "5" "9"  "13" "17"
## [2,] "Gina"   "2" "6" "10" "14" "18"
## [3,] "Kelly"  "3" "7" "11" "15" "19"
## [4,] "Sean"   "4" "8" "12" "16" "20"
# この関数cbind()のcはcolumn(カラム:列) のcです。つまり、列の順番に値を設定します。
# これと対になる関数がrbind()です。rはrow(ロウ:行)のrです。つまり行の順番に値を設定します。

# 本題に戻ると、cbind(patients, my_matrix2)の結果は変です。
# 数値がcharacterに変更されています。これは、同じ型のデータから構成されるマトリックスへの入力のため、
# 最初の”Bill”などのcharacterに数値が強制的にcharacterに変換されたことになります。

# このような強制変換をしないためには、関数data.frame()を使います。

my_data <- data.frame(patients, my_matrix2)

# my_dataを表示させてください。

# 次に my_dataの型を関数class()を作ってチェックしてください。

# [1] "data.frame"  と表示されましたか。

# my_data は6列です。
# my_data の列名を、”patient", "age", "weight", "bp", "rating", "test” にしてみます。

# そのために、まず、変数cnames へ"patient", "age", "weight", "bp", "rating", "test”を代入してください。
# 次に、関数colnames()を使ってcnamesの値を代入してください。
# (関数rownames()についても確認しておいてください。)

# できましたか。
# my_dataを表示させると...

# >my_data
#   patient age weight bp rating test
# 1    Bill   1      5  9     13   17
# 2    Gina   2      6 10     14   18
# 3   Kelly   3      7 11     15   19
# 4    Sean   4      8 12     16   20
#                                     と表示されます。

# これが確認できれば、このレッスンは終了です。