プログラミング言語としてのR 情報知能学科 白井 英俊.

Slides:



Advertisements
Similar presentations
「 R 入門」 第6章:リストとデータフレーム 6.3 データフレーム 発表日:10月30日 担当者:脇坂恭志郎.
Advertisements

2.5 プログラムの構成要素 (1)文字セット ① ASCII ( American Standard Code for Interchange ) JIS コードと同じ ② EBCDIC ( Extended Binary Coded Decimal for Information Code ) 1.
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
プログラムのパタン演習 解説.
プログラミング入門2 第4回 配列 for文 変数宣言 初期化
ファーストイヤー・セミナーⅡ 第8回 データの入力.
数値計算及び実習 第3回 プログラミングの基礎(1).
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
最適化ソルバーのための Python言語入門
地理情報システム論 第3回 コンピュータシステムおける データ表現(1)
「R入門」 第3章:オブジェクト、そのモードと属性
C言語 配列 2016年 吉田研究室.
プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.
条件式 (Conditional Expressions)
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
第3回 配列,構造体,ポインタ ~ データ構造について学ぶための基礎~
シミュレーション演習 G. 総合演習 (Mathematica演習) システム創成情報工学科
第7回 条件による繰り返し.
情報処理3 第5回目講義         担当 鶴貝 達政 11/8/2018.
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
プログラムの制御構造 選択・繰り返し.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
繰り返し計算 while文, for文.
電気・機械・情報概論 VBAプログラミング 第2回 2018年7月2日
プログラミング演習I 2003年5月7日(第4回) 木村巌.
プログラミング入門2 第2回 型と演算 条件分岐 篠埜 功.
前回の練習問題.
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
情報基礎Ⅱ (第11回) 月曜4限 担当:北川 晃.
データ構造と アルゴリズム 第五回 知能情報学部 新田直也.
プログラミング言語論 第四回 理工学部 情報システム工学科 新田直也.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
情報処理Ⅱ 第2回:2003年10月14日(火).
アルゴリズムとデータ構造 2011年7月8日課題の復習
C言語 はじめに 2016年 吉田研究室.
統計ソフトウエアRの基礎.
プログラミング 3 2 次元配列.
地域情報学 C言語プログラミング 第2回 変数・配列、型変換、入力 2017年10月20日
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
基礎プログラミング演習 第6回.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
ポインタとポインタを用いた関数定義.
情報処理Ⅱ 第2回 2006年10月13日(金).
ウェブデザイン演習 第6回.
第5回 プログラミングⅡ 第5回
プログラミング入門2 第5回 配列 for文 変数宣言 初期化
情報処理Ⅱ 2005年10月28日(金).
オブジェクト指向言語論 第二回 知能情報学部 新田直也.
コンパイラ 2012年10月11日
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
PROGRAMMING IN HASKELL
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
情報処理Ⅱ 第2回 2004年10月12日(火).
情報処理Ⅱ 2005年11月25日(金).
オブジェクト指向言語論 第三回 知能情報学部 新田直也.
プログラミング基礎a 第5回 C言語によるプログラミング入門 配列と文字列
プログラミング入門2 第5回 配列 変数宣言、初期化について
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
情報処理Ⅱ 小テスト 2005年2月1日(火).
計算技術研究会 第5回 C言語勉強会 関数(function)を使う
プログラミング演習II 2003年10月29日(第2,3回) 木村巌.
分岐(If-Else, Else if, Switch) ループ(While, For, Do-while)
プログラミング 3 ポインタ(1).
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
ファーストイヤー・セミナーⅡ 第10回 if文による選択処理(2).
Presentation transcript:

プログラミング言語としてのR 情報知能学科 白井 英俊

初めに この文書は、完全を目指していない 書いてあることは不完全で、ひょっとしたら間違いがあるかもしれない 必ず試し、分からなければ調べよ この文書は、高階(2008)「プログラミングR」オーム社、に基づく Rはウェブ上に豊富な資料がある。ウェブを有効利用せよ Rはhelpが充実している。そのために英語に慣れよう!

変数とオブジェクト Rの変数は、Rubyと同様、「どんなオブジェクトでも格納できる箱のようなもの」 例: 変数名 <- オブジェクト 例: 変数名 <- オブジェクト 変数には型の宣言が不要。オブジェクト自体が型を持っている(Rubyと同じ) オブジェクトの型を『クラス』という。クラスを調べるには、  例: class(オブジェクト) オブジェクトに属性を追加できる:   例: attr(オブジェクト名, 属性名) <- 属性値

実行文 代入文のように何かを『計算・実行する』文は、値を持つ 文は一行に一つ、もしくは;で区切って一行に複数の文が書ける(Rubyと同じ) 一つの文は複数行にまたがってもよい {と}で複数の文をまとめたものを「ブロック」という。一つのブロックは、一つの文相当となる。

関数 関数はfunctionを使う。基本的に、関数には名前がない。 関数を変数に代入すると、その変数が「関数名」として働く。  例: fact <- function(x) { if (x > 1) { return(x * fact(x-1)) } else { return(1) } } > fact(10)

データ型と型変換 Rの基本的な型 数値型 numeric (基本的に数はすべてこれ) 論理型 logical: TRUE/FALSE   欠損値: NA (Not Applicable) 文字型 character: 文字列の前後を"で囲む  因子型 factor: 作成するには関数factorを用いる  複素数型 complex: x+yi 型の変換   as.numeric, as.character, as.logical, as.complex

データの集合 集合的なデータ構造は5種類 ベクトル: 同じ型のデータの1次元の集まり 例: x <- c(1,2,3) ベクトル: 同じ型のデータの1次元の集まり 例: x <- c(1,2,3) 行列: 同じ型のデータの2次元の集まり 例: y <- matrix(0, nrow=3, ncol=3) 配列: 同じ型のデータの3次元以上の集まり 例: z <- array(1:18, dim=c(3,3,2)) リスト: 異なる型のデータの1次元の集まり 例: w <- list("sentence", list("subj"), list("v", list("obj"))) データフレーム:任意型のベクトルの表形式の集まり。データ分析の関数が用いる

集合データの要素の参照方法 集合データの要素の参照方法  (1) 単純参照: 要素番号を指定して、個別の要素を取り出す。例: x[2], y[1,3] (2) 行列名による参照   ベクトルの場合 names、行列の場合、rownames, colnamesで行列名を与え、y[“col01”,”row01”]で要素が取り出せる データフレームの場合、$で列全体が取り出せる  例:陸上$走り幅跳び

集合データの要素参照(続) 範囲参照 例: x[2:3] x[c(2,3)] 条件参照 1)除外条件: 例: x[-2] :2番目の要素以外 注意:リストの要素参照で、単純参照をすると「部分リスト」が返る。要素そのものを取り出す場合は、以下のようにする: w[ [2] ]

演算子 四則演算 x + y x – y x * y x / y x %/% y xをyで割った商 x %% y xをyで割った余り

演算子 比較: x==y x != y 論理: ! x x > y x >= y x < y x <= y

制御構造 If文 (1) if (条件式) 真のときに実行する文(ブロック) 繰り返し:breakとnextが使える else 偽のときに実行する文(ブロック) 繰り返し:breakとnextが使える (1) for (変数 in 集合) 文(ブロック)   (2) while (条件式) 実行文(ブロック) (3) repeat 実行文(ブロック)

算術関数、文字列関数 各自調べよ

ベクトル演算型プログラミング マッピング:入力の集合の各要素について、同一の処理を行い、それらの結果を結合した出力を作る sapply(xs, f) : xsの各要素に対し関数fを適用し、結果のベクトルを返す lapply(xs,f) : xsの各要素に対し関数fを適用し、結果のリストを返す rapply(xs,f) : xsの各要素に対し「再帰的」に関数fを適用し、結果のリストを返す などなど