atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
R入門
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
R入門
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
R入門
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • R入門
  • 数学

R入門

数学

最終更新:2024年11月28日 20:59

r-intro

- view
管理者のみ編集可

目次

  • 目次
  • 絶対値を求める
  • 平方根を求める
  • 累乗を求める
    • 「累乗」と「べき乗(冪乗)」について
  • 数列を求める
  • 順列を求める
  • 組合せを求める
  • 三角関数の値を求める
  • 対数の値を求める
  • 代数方程式の根を求める
  • 微分する
  • 定積分を求める
  • 二つの集合MとNの共通部分M∩Nと和集合M∪Nを得る
  • ベクトルの要素について累積の和を求める
  • ベクトルの要素について累積の積を求める

絶対値を求める

abs関数を使う。引数には数値型ベクトルを与える。

> abs(10)
[1] 10
> abs(-20)
[1] 20
> abs(3.3) - abs(-3.3)
[1] 0
> abs(c(100, -200))
[1] 100 200

平方根を求める

sqrt関数を使う。

> sqrt(2)
[1] 1.414214
> sqrt(3)
[1] 1.732051
> sqrt(4)
[1] 2
> sqrt(0)
[1] 0
> sqrt(1 / 2)
[1] 0.7071068
> sqrt(-2)
[1] NaN
 警告メッセージ: 
 sqrt(-2) で:   計算結果が NaN になりました

累乗を求める

^演算子か**演算子を使う。

> 2 ^ 3
[1] 8
> 2 ^ 0.5
[1] 1.414214
> 2 ^ -4
[1] 0.0625
> -3 ^ 3
[1] -27
> 2 ** 3
[1] 8
> 2 ** 0.5
[1] 1.414214
> 2 ** -4
[1] 0.0625
> -3 ** 3
[1] -27

「累乗」と「べき乗(冪乗)」について

各文献における「累乗」と「べき乗(冪乗)」の扱いは以下のとおり。「累乗」と「べき乗(冪乗)」は同義語だが、「累乗」の使用を推奨する。

「累乗」 「べき乗」
数学小辞典 第2版増補(共立出版) ◎ △
数学小辞典(共立出版) 〇 ×
明鏡国語辞典 第3版(大修館) 〇 ×
新明解国語辞典 第7版(三省堂) ◎ ×

◎:見出しに有り、説明文中にべき乗ともと記載。
〇:見出しに有り、説明文中にべき乗については言及せず。
△:見出しに有るが、説明は無く累乗を参照と記載。
×:見出しに無し。

数列を求める

seqコマンドを使う。引数は1~3つ与えることができ、それぞれ以下のようになる。最後の例のとおり、最後に公差を加えて末項に一致しない場合は、その1つ前の項までが作成される。

  • seq(初項)
  • seq(初項, 末項) ※公差は1
  • seq(初項, 末項, 公差) ※末項に届かないときはその1つ前の項まで
> seq(3)
[1] 1 2 3
> seq(2, 5)
[1] 2 3 4 5
> seq(3, 12, 4)
[1]  3  7 11

負数や実数の指定も可能。

> seq(-1, -11, -2)
[1]  -1  -3  -5  -7  -9 -11
> seq(1.2, 2.8, 0.4)
[1] 1.2 1.6 2.0 2.4 2.8

順列を求める

Rには標準では順列の総数を求める関数は搭載されていない。階乗を使った式で表すことができるため、階乗を求めるfactorial関数を使用して、順列の総数を求める関数permuを自作する。

> permu <- function(n, r) {factorial(n) / factorial(n - r)}

5 P 2 (=20)、 5 P 3 (=60)を求めてみる。

> permu(5, 2)
[1] 20
> permu(5, 3)
[1] 60

なおn > r、0!=1である。n=rの場合は、階乗そのものの計算になる。

組合せを求める

choose関数を使う。n個からr個とった組合せの総数を求める。

5 C 2 (=10)、 7 C 3 (=35)、 10 C 2 (=45)を求めてみる。

> choose(5, 2)
[1] 10
> choose(7, 3)
[1] 35
> choose(10, 2)
[1] 45

三角関数の値を求める

cos関数(余弦関数)、sin関数(正弦関数)、tan関数(正接関数)を使う。角θの値が、次の各値の時、cosθ、sinθ、tanθを求めてみる。

θ=0, π/2, π, 2π

> theta <- c(0, pi / 2, pi, 2 * pi)
> cos(theta)
[1]  1.000000e+00  6.123032e-17 -1.000000e+00  1.000000e+00
> sin(theta)
[1]  0.000000e+00  1.000000e+00  1.224606e-16 -2.449213e-16
> tan(theta)
[1]  0.000000e+00  1.633124e+16 -1.224647e-16 -2.449294e-16

~-17や~-16は計算上限りなく小さい値が求まった(≒0.0)ということであり、実際にそのような値が精度良く求まったということではない。~+16(≒∞)も同様である。

対数の値を求める

log関数を使う。aを底とするNの対数の求め方は以下のとおり。

log(N, a)

log 3 3(=1)、log 5 1(=0)、log 3 243(=5)の値をそれぞれ求める。

> log(3, 3)
[1] 1
> log(1, 5)
[1] 0
> log(243, 3)
[1] 5

底は省略することができる。その場合はeを底とする自然対数が求まる。

> log(2)
[1] 0.6931472
> log(2, exp(1))
[1] 0.6931472

常用対数(10を底とする対数)を求めるlog10関数、2を底とする対数を求めるlog2関数もある。

> log10(100)
[1] 2
> log(100, 10)
[1] 2
> log2(20)
[1] 4.321928
> log(20, 2)
[1] 4.321928

代数方程式の根を求める

polyroot関数を使う。以下は2x 3 +3x 2 +8x-5=0の3つの根(0.5,-1+2i,-1-2i)を求めた例。虚部も求めることができる。引数には、次数の低いほうから係数をベクトルでまとめて与える(この場合はc(-5,8,3,2)となる)。

> polyroot(c(-5, 8, 3, 2))
[1]  0.5+0i -1.0+2i -1.0-2i

戻り値は複素数型。複素数型から実部だけを取り出すにはRe関数を、虚部だけを取り出すにはIm関数を使う。これら関数の戻り値はそれぞれ実数型。

> class(d)
[1] "complex"
> Re(d)
[1]  0.5 -1.0 -1.0
> Im(d)
[1]  3.372483e-16  2.000000e+00 -2.000000e+00
> class(Re(d))
[1] "numeric"
> class(Im(d))
[1] "numeric"

微分する

ある式を関数と見なして、その式(関数)の導関数を求める(微分する)ことができる。expression関数とD関数を併用する。

以下はxの4乗を微分した例。手計算では「xの4乗」を微分すれば、「4かけるxの3乗」になる。

> f <- expression(x ^ 4)
> D(f, "x")
4 * x^3

いろいろな関数も微分できる。例えばsin(3x-2)を微分する。手計算では微分をすると3cos(3x-2)になる。

> f <- expression(sin(3*x - 2))
> D(f, "x")
cos(3 * x - 2) * 3

式には定数を含めることもできる。

> f <- expression(a * x ^ 3)
> D(f, "x")
a * (3 * x^2)

定積分を求める

integrate関数を使う。引数は以下のとおり

integrate(関数, 積分の下端, 積分の上端)

関数はfunction関数で定義しておくこと。

以下は、x^2を0から1まで、0から2まで積分した例。手計算で定積分はそれぞれ1/3,8/3である。

> f <- function(x) x ^ 2
> integrate(f, 0, 1)
0.3333333 with absolute error < 3.7e-15
> integrate(f, 0, 2)
2.666667 with absolute error < 3e-14

三角関数などのように定義済みの関数はそのままでも使うことができる。既存の関数を使用して関数を定義することもできる。

> integrate(cos, 0, pi / 2)
1 with absolute error < 1.1e-14
> f <- function(x) cos(x)
> integrate(f, 0, pi / 2)
1 with absolute error < 1.1e-14

置換積分法が必要な積分も、簡単に行える。下記の例では、手計算で定積分は8/sqrt(2)=5.656854…である。

> f <- function(x) 4 * cos(x / 2)
> integrate(f, 0, pi / 2)
5.656854 with absolute error < 6.3e-14

二つの集合MとNの共通部分M∩Nと和集合M∪Nを得る

共通部分(どちらにも属している要素の集合)M∩Nを得るにはintersect関数を、和集合(少なくとも一方に属する要素の集合)M∪Nを得るにはunion関数を得る。以下、例。

> m <- seq(2, 18, by = 2)
> n <- seq(3, 18, by = 3)
> print(m)
[1]  2  4  6  8 10 12 14 16 18
> print(n)
[1]  3  6  9 12 15 18
> union(m, n)
 [1]  2  4  6  8 10 12 14 16 18  3  9 15
> intersect(m, n)
[1]  6 12 18

ベクトルの要素に対して行う処理のため、当然、要素が数値以外でもかまわない。

> s1 <- c("スーパークリーク", "メイショウドトウ", "サクラチヨノオー")
> s2 <- c("メイショウドトウ", "サクラチヨノオー", "メジロアルダン")
> union(s1, s2)
[1] "スーパークリーク" "メイショウドトウ" "サクラチヨノオー" "メジロアルダン"  
> intersect(s1, s2)
[1] "メイショウドトウ" "サクラチヨノオー"

ベクトルの要素について累積の和を求める

ベクトルの要素の値をインデックス順に足した累積の値を得るには、cumsum関数を使う。

> i <- 1:10
> i
 [1]  1  2  3  4  5  6  7  8  9 10
> cumsum(i)
 [1]  1  3  6 10 15 21 28 36 45 55

ベクトルの要素について累積の積を求める

ベクトルの要素の値をインデックス順に掛けた累積の値を得るには、cumprod関数を使う。順番に要素を掛けるだけのため、最後の例のように要素の値をすべて同じにすれば、単純に累乗が求まることになる。

> i <- 1:5
> i
[1] 1 2 3 4 5
> cumprod(i)
[1]   1   2   6  24 120
> i <- rep(2, 8)
> i
[1] 2 2 2 2 2 2 2 2
> cumprod(i)
[1]   2   4   8  16  32  64 128 256
「数学」をウィキ内検索
LINE
シェア
Tweet
R入門
記事メニュー

メニュー

  • トップページ
  • Rとは
  • Rを使ってみる
  • 画面出力と入力
  • 変数とオブジェクト
  • ベクトル
  • 演算子と制御構文
  • 数と式
  • 文字と文字列
  • 正規表現
  • 日付と時刻
  • データフレーム
  • tidyverse
  • リスト
  • ファイルの入出力
  • ファイル・ディレクトリ
  • 実行とデバッグ
  • 数学
  • 行列
  • 関数
  • 統計学
  • 統計解析
  • 数値計算
  • 応用
  • 時系列解析
  • 地理空間情報
  • Rの操作
  • データベース
  • パッケージ

  • 環境
  • インターネット
  • 作図
  • 画像

  • 本の計算を再現
  • セイバーメトリクス
  • その他


ここを編集
記事メニュー2

更新履歴

取得中です。

ここを編集
最近更新されたページ
  • 14日前

    データフレーム
  • 17日前

    リスト
  • 41日前

    行列
  • 44日前

    tidyverse
  • 81日前

    インターネット
  • 93日前

    日付と時刻
  • 93日前

    応用
  • 93日前

    文字と文字列
  • 109日前

    変数とオブジェクト
  • 152日前

    その他
もっと見る
最近更新されたページ
  • 14日前

    データフレーム
  • 17日前

    リスト
  • 41日前

    行列
  • 44日前

    tidyverse
  • 81日前

    インターネット
  • 93日前

    日付と時刻
  • 93日前

    応用
  • 93日前

    文字と文字列
  • 109日前

    変数とオブジェクト
  • 152日前

    その他
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MadTown GTA (Beta) まとめウィキ
  2. R.E.P.O. 日本語解説Wiki
  3. シュガードール情報まとめウィキ
  4. 機動戦士ガンダム EXTREME VS.2 INFINITEBOOST wiki
  5. SYNDUALITY Echo of Ada 攻略 ウィキ
  6. ソードランページ @ 非公式wiki
  7. 星飼いの詩@ ウィキ
  8. ドラゴンボール Sparking! ZERO 攻略Wiki
  9. GTA5 MADTOWN(β)まとめウィキ
  10. シミュグラ2 @ ウィキ
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. ゲームカタログ@Wiki ~名作からクソゲーまで~
  4. 初音ミク Wiki
  5. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  6. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  7. 発車メロディーwiki
  8. 検索してはいけない言葉 @ ウィキ
  9. MadTown GTA (Beta) まとめウィキ
  10. オレカバトル アプリ版 @ ウィキ
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 参加者一覧 - ストグラ まとめ @ウィキ
  2. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  3. 金 - アニヲタWiki(仮)
  4. 868 - ストグラ まとめ @ウィキ
  5. シャア専用ヅダ - アニヲタWiki(仮)
  6. ジロリアンコピペ - ラーメン二郎 wiki
  7. モンスター一覧_第2章 - モンスター烈伝オレカバトル2@wiki
  8. サーヴァント/一覧/クラス別 - Fate/Grand Order @wiki 【FGO】
  9. ロスサントス警察 - ストグラ まとめ @ウィキ
  10. 参加者一覧 - MadTown GTA (Beta) まとめウィキ
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.