「関数の解説」の編集履歴(バックアップ)一覧はこちら
関数の解説 - (2008/08/15 (金) 21:10:02) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
#contents()
*基本の関数
**ベクトルの生成
----
***c
c関数は引数として与えられた値を合成してベクトルにします。引数としては実数、複素数、論理値、文字列が取れます。文字列の場合はダブルクオーテーションでくくります。複数の型のベクトルを混在させた場合の優先順位は、論理値<実数<複素数<文字列で、高位のものに合わせて型が変換されます。論理値は実数または複素数と混在させたときはTRUEが1、FALSEが0として解釈され、文字列と混在させたときは"TRUE","FALSE"という文字列として認識されます。
> c(1, 2, 3)
[1] 1 2 3
> c(1+2i, 3+4i, 5+6i) #複素数は「実部+虚部i」の形で指定
[1] 1+2i 3+4i 5+6i
> c(T, F, TRUE, FALSE) #TとTRUE、FとFALSEは同じ意味だが、TとFは代入可能オブジェクト
[1] TRUE FALSE TRUE FALSE
> c("cat", "dog", "panda") #文字列は""でくくる
[1] "cat" "dog" "panda"
> c(T, F, 1)
[1] 1 0 1 #TRUEは1、FALSEは0の意味
> c(T, 1, 2+3i)
[1] 1+0i 1+0i 2+3i #実数より複素数が優先
> c(T, 2, 3+4i, "cat")
[1] "TRUE" "2" "3+4i" "cat" #文字列が最優先
----
***:
:関数は記号を挟んで左の数値から右の数値まで公差が1の等差数列ベクトルを生成します。実例を見たほうが分かりやすいでしょう。
> 1:10
[1] 1 2 3 4 5 6 7 8 9 10
> 10:1
[1] 10 9 8 7 6 5 4 3 2 1
> 1.1:10.1
[1] 1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 9.1 10.1
> 1.1:10.5
[1] 1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 9.1 10.1
> 1.1:1.23
[1] 1.1
***rep
rep関数は第一引数に与えられたベクトルを第二引数に与えられた数値の回数だけ繰り返したベクトルを生成します。第二引数に1つの値を与えた場合は第一引数のベクトルがその回数だけ繰り返されますが、ベクトルとして第一引数のベクトル要素と同じ数だけの値を与えた場合は、第一引数ベクトルの各要素が対応する第二引数ベクトルの数値分だけ繰り返されます。
> rep(1, 10)
[1] 1 1 1 1 1 1 1 1 1 1
> rep(1:3, 3)
[1] 1 2 3 1 2 3 1 2 3
> rep(c("cat","dog"), c(3,4))
[1] "cat" "cat" "cat" "dog" "dog" "dog" "dog"
**オブジェクトの操作
***代入
x <- 3
この操作でxというオブジェクトに3という数値が代入されます。また同時にxというオブジェクトが作成されます。次の操作でも代入ができますが、特に理由がなければ上記のやりかたにすべきでしょう。
x = 3
3 -> x
代入元には数値のほか、ベクトルや行列、データフレームなども代入できます。また、計算結果も代入できるということをよく意識しておくといいでしょう。
x <- 5-2
***参照
オブジェクトの参照はオブジェクト名をタイピングすることで行います。
x <- 1:10
[1] 1 2 3 4 5 6 7 8 9 10
また、[]で添え字を指定することにより特定のベクトルのみを取り出せます。
***計算
ベクトルが代入されたオブジェクト同士の演算は、要素どうしの演算となります。
> x <- 1:10
> y <- 11:20
> x+y
[1] 12 14 16 18 20 22 24 26 28 30
> x*y
[1] 11 24 39 56 75 96 119 144 171 200
> x/y
[1] 0.0909091 0.1666667 0.2307692 0.2857143 0.3333333 0.3750000 0.4117647
[8] 0.4444444 0.4736842 0.5000000
#contents()
*基本の関数
**ベクトルの生成
----
***c
c関数は引数として与えられた値を合成してベクトルにします。引数としては実数、複素数、論理値、文字列が取れます。文字列の場合はダブルクオーテーションでくくります。複数の型のベクトルを混在させた場合の優先順位は、論理値<実数<複素数<文字列で、高位のものに合わせて型が変換されます。論理値は実数または複素数と混在させたときはTRUEが1、FALSEが0として解釈され、文字列と混在させたときは"TRUE","FALSE"という文字列として認識されます。
> c(1, 2, 3)
[1] 1 2 3
> c(1+2i, 3+4i, 5+6i) #複素数は「実部+虚部i」の形で指定
[1] 1+2i 3+4i 5+6i
> c(T, F, TRUE, FALSE) #TとTRUE、FとFALSEは同じ意味だが、TとFは代入可能オブジェクト
[1] TRUE FALSE TRUE FALSE
> c("cat", "dog", "panda") #文字列は""でくくる
[1] "cat" "dog" "panda"
> c(T, F, 1)
[1] 1 0 1 #TRUEは1、FALSEは0の意味
> c(T, 1, 2+3i)
[1] 1+0i 1+0i 2+3i #実数より複素数が優先
> c(T, 2, 3+4i, "cat")
[1] "TRUE" "2" "3+4i" "cat" #文字列が最優先
----
***:
:関数は記号を挟んで左の数値から右の数値まで公差が1の等差数列ベクトルを生成します。実例を見たほうが分かりやすいでしょう。
> 1:10
[1] 1 2 3 4 5 6 7 8 9 10 #右の方が大きければ1ずつ増える
> 10:1
[1] 10 9 8 7 6 5 4 3 2 1 #右の方が小さければ1ずつ減る
> 1.1:10.1
[1] 1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 9.1 10.1
> 1.1:10.5
[1] 1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 9.1 10.1 #右の数値の小数点以下は無視
> 1.1:1.23
[1] 1.1 #長さ1のベクトルも生成可
----
***rep
rep関数は第一引数に与えられたベクトルを第二引数に与えられた数値の回数だけ繰り返したベクトルを生成します。第二引数に1つの値を与えた場合は第一引数のベクトルがその回数だけ繰り返されますが、ベクトルとして第一引数のベクトル要素と同じ数だけの値を与えた場合は、第一引数ベクトルの各要素が対応する第二引数ベクトルの数値分だけ繰り返されます。
> rep(1, 10)
[1] 1 1 1 1 1 1 1 1 1 1
> rep(1:3, 3)
[1] 1 2 3 1 2 3 1 2 3
> rep(c("cat","dog"), c(3,4))
[1] "cat" "cat" "cat" "dog" "dog" "dog" "dog"
----
***numeric
***complex
***logical
***character
これらの関数は引数で指定された数値分の長さの空の(ゼロの)ベクトルを作ります。
> numeric(5)
[1] 0 0 0 0 0
> complex(5)
[1] 0+0i 0+0i 0+0i 0+0i 0+0i
> logical(5)
[1] FALSE FALSE FALSE FALSE FALSE
> character(5)
[1] "" "" "" "" ""
----
**オブジェクトの操作
***代入
x <- 3
この操作でxというオブジェクトに3という数値が代入されます。また同時にxというオブジェクトが作成されます。次の操作でも代入ができますが、特に理由がなければ上記のやりかたにすべきでしょう。
x = 3
3 -> x
代入元には数値のほか、ベクトルや行列、データフレームなども代入できます。また、計算結果も代入できるということをよく意識しておくといいでしょう。
x <- 5-2
***参照
オブジェクトの参照はオブジェクト名をタイピングすることで行います。
x <- 1:10
[1] 1 2 3 4 5 6 7 8 9 10
また、[]で添え字を指定することにより特定のベクトルのみを取り出せます。
***計算
ベクトルが代入されたオブジェクト同士の演算は、要素どうしの演算となります。
> x <- 1:10
> y <- 11:20
> x+y
[1] 12 14 16 18 20 22 24 26 28 30
> x*y
[1] 11 24 39 56 75 96 119 144 171 200
> x/y
[1] 0.0909091 0.1666667 0.2307692 0.2857143 0.3333333 0.3750000 0.4117647
[8] 0.4444444 0.4736842 0.5000000