第6回 関数とフロー制御

西南学院大学経済学部 演習1 講義ノート 講義ページ: http://courses.wshito.com/semi1/2020-datascience/index.html

6
2020 3 8
1 1
2 1
2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3 5
3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.1 if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.2 ifelse() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.3 switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.1 for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.2 while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.4 apply . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1
•
•
2
csv
read.csv() data.frame()
1
2.1 6
2.1
function() Hello World!
hello() 1
+ +
> hello <- function() { #
+ cat("Hello Worldn")
+ }
> hello() #
Hello World
function() { }
function() ( )
name
> hello <- function(name) {
+ cat (" ", name, "n", sep="")
+ }
> hello(" !")
!
> add <- function (x, y) {
+ x + y
+ }
> add(10, 5)
[1] 15
add() x y
add(10, 5) 10 5
2.2
> calc <- function (x, y) {
+ x * y
+ x - y
+ x + y # calc
I 2
2.3 6
+ }
> calc (3, 4)
[1] 7
return()
> calc <- function (x, y) {
+ x * y
+ x - y
+ return(x + y) #
+ }
> calc (1, 2)
[1] 3
return() 2
> calc <- function (x, y) {
+ x * y
+ return(x - y) # x-y
+ x + y #
+ }
> calc (1, 2)
[1] -1
2.3
hello() name " "
hello() name " "
> hello <- function(name=" ") { # name
+ cat (" ", name, "n", sep="")
+ }
> hello() # name
> hello(" !") # name !
!
name birthday
I 3
2.4 6
> greeting <- function(name, birthday, greet=" ", to=" ") {
+ str <- paste(to, " ", greet, " ",
+ " ", name, " ",
+ " ", birthday, " ", sep="")
+ str
+ }
> greeting(" ", "4 1 ") # greet to
[1] " 4 1 "
str str
R str
str
greeting()
> greeting(" ", "4 1 ", " ") # to
[1] " 4 1 "
> greeting(" ", "4 1 ", " ", " ")
[1] " 4 1 "
greet 3 greet
> greeting(" ", "4 1 ", " ")
[1] " 4 1 "
> greeting(" ", "4 1 ", to=" ")
[1] " 4 1 "
> greeting(greet=" ", name=" ", to=" ", birthday="4 1 ")
[1] " 4 1 "
2.4
greeting() g
g() greeting()
I 4
6
> g <- greeting
> g(name=" ", birthday="4 ")
[1] " 4 "
add() adder()
x y add
> add <- function(x, y, adder) {
+ adder(x, y)
+ }
add add.num() add add.str()
> add.num <- function(x, y) {
+ x + y #
+ }
> add.str <- function(x, y) {
+ paste(x, y) #
+ }
add()
> add(1, 5, add.num)
[1] 6
> add("a", "b", add.str)
[1] "a b"
> add("a", "b", function(x, y) {paste(x, y, sep="+")})
[1] "a+b"
3
I 5
3.1 6
3.1
3.1.1 if
TRUE FALSE if if
> absolute.value <- function(x) {
+ if (x > 0) {
+ x # x > 0 TRUE x
+ } else {
+ -x # x > 0 FALSE x
+ }
+ }
> absolute.value(5)
[1] 5
> absolute.value(-9)
[1] 9
TRUE return(x) x
FALSE else
> absolute.value <- function(x) {
+ if (x > 0) {
+ return(x) # x > 0 TRUE x
+ }
+ -x # x > 0 FALSE x
+ }
> absolute.value(-100)
[1] 100
> absolute.value(4)
[1] 4
if-else 90 A 80
B 60 C D grade()
> grade <- function(score) {
+ if (score >= 90) {
+ "A"
+ } else if (score >= 80) {
+ "B"
+ } else if (score >= 60) {
+ "C"
+ } else {
+ "D"
+ }
+ }
> grade(100)
[1] "A"
I 6
3.1 6
> grade(34)
[1] "D"
> grade(65)
[1] "C"
> grade(83)
[1] "B"
grade() else if { } else if
1 1
> grade <- function(score) {
+ if (score >= 90) {
+ "A"
+ } else {
+ if (score >= 80) {
+ "B"
+ } else {
+ if (score >= 60) {
+ "C"
+ } else {
+ "D"
+ }
+ }
+ }
+ }
if grade() if else
1
> grade <- function(score) {
+ if (score >= 90)
+ "A"
+ else if (score >= 80)
+ "B"
+ else if (score >= 60)
+ "C"
+ else
+ "D"
+ }
3.1.2 ifelse()
if-else ifelse() ifelse()
ifelse()
I 7
3.2 6
ifelse( , , )
> absolute.value <- function(x) { # ifelse
+ ifelse(x > 0, x, -x)
+ }
> grade <- function(score) { # ifelse
+ ifelse(score >= 90, "A",
+ ifelse(score >= 80, "B",
+ ifelse(score >= 60, "C", "D")))
+ }
ifelse()
3.1.3 switch
if-else 2 switch()
switch( , 1, 2, 3, ...)
1
> switch(3, " 1", " 2", " 3", " 4") # 3
[1] " 3"
> switch("b", a=" 1", b=" 2", c=" 3") # b
[1] " 2"
3.2
R for while
R 3.4 apply
3.2.1 for
for
for(i in )
i i
{ }
I 8
3.2 6
> z <- 0 # z 0
> for(i in 1:10) {
+ z <- z + i # 1 10
+ }
> z # for z
[1] 55
> for(n in c("a", "b", "c", "d")) #
+ cat(toupper(n), "n") # toupper()
A
B
C
D
for 2
> for(i in 1:5) {
+ for(j in 1:5)
+ cat(i, "-", j, ", ", sep="")
+ cat("n")
+ }
1-1, 1-2, 1-3, 1-4, 1-5,
2-1, 2-2, 2-3, 2-4, 2-5,
3-1, 3-2, 3-3, 3-4, 3-5,
4-1, 4-2, 4-3, 4-4, 4-5,
5-1, 5-2, 5-3, 5-4, 5-5,
3.2.2 while
while
> countdown <- function(n) { # n 0
+ while (n != 0) {
+ cat(n, ", ", sep="")
+ n <- ifelse (n >= 0, n-1, n+1) # n
+ }
+ cat("0n")
+ }
> countdown(10)
10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
> countdown(-5)
-5, -4, -3, -2, -1, 0
I 9
3.3 6
3.3
(1) (7) 3 GDP
ppp GDP
compare.gdp() 2010
> compare.gdp(ppp, 2010)
Qatar 117518.7
Japan 34986.99
Congo, Dem. Rep. 646.2954
(2) x y gcd(x, y)
3.4 apply
for while
R apply
apply 1
1 2 4 ? 3 2 ?
I 10

Recommended

第4回 データフレームの基本操作 その2(解答付き) by
第4回 データフレームの基本操作 その2(解答付き)第4回 データフレームの基本操作 その2(解答付き)
第4回 データフレームの基本操作 その2(解答付き)Wataru Shito
249 views13 slides
第7回 大規模データを用いたデータフレーム操作実習(1) by
第7回 大規模データを用いたデータフレーム操作実習(1)第7回 大規模データを用いたデータフレーム操作実習(1)
第7回 大規模データを用いたデータフレーム操作実習(1)Wataru Shito
437 views9 slides
第2回 基本演算,データ型の基礎,ベクトルの操作方法(解答付き) by
第2回 基本演算,データ型の基礎,ベクトルの操作方法(解答付き)第2回 基本演算,データ型の基礎,ベクトルの操作方法(解答付き)
第2回 基本演算,データ型の基礎,ベクトルの操作方法(解答付き)Wataru Shito
371 views12 slides
第5回 様々なファイル形式の読み込みとデータの書き出し(解答付き) by
第5回 様々なファイル形式の読み込みとデータの書き出し(解答付き)第5回 様々なファイル形式の読み込みとデータの書き出し(解答付き)
第5回 様々なファイル形式の読み込みとデータの書き出し(解答付き)Wataru Shito
472 views21 slides
第2回 基本演算,データ型の基礎,ベクトルの操作方法 by
第2回 基本演算,データ型の基礎,ベクトルの操作方法第2回 基本演算,データ型の基礎,ベクトルの操作方法
第2回 基本演算,データ型の基礎,ベクトルの操作方法Wataru Shito
238 views11 slides
第3回 データフレームの基本操作 その1(解答付き) by
第3回 データフレームの基本操作 その1(解答付き)第3回 データフレームの基本操作 その1(解答付き)
第3回 データフレームの基本操作 その1(解答付き)Wataru Shito
385 views9 slides

More Related Content

What's hot

第3回 データフレームの基本操作 その1 by
第3回 データフレームの基本操作 その1第3回 データフレームの基本操作 その1
第3回 データフレームの基本操作 その1Wataru Shito
169 views8 slides
第8回 大規模データを用いたデータフレーム操作実習(2) by
第8回 大規模データを用いたデータフレーム操作実習(2)第8回 大規模データを用いたデータフレーム操作実習(2)
第8回 大規模データを用いたデータフレーム操作実習(2)Wataru Shito
316 views23 slides
第4章 確率的学習---単純ベイズを使った分類 by
第4章 確率的学習---単純ベイズを使った分類第4章 確率的学習---単純ベイズを使った分類
第4章 確率的学習---単純ベイズを使った分類Wataru Shito
560 views39 slides
Algebra and Trigonometry 9th Edition Larson Solutions Manual by
Algebra and Trigonometry 9th Edition Larson Solutions ManualAlgebra and Trigonometry 9th Edition Larson Solutions Manual
Algebra and Trigonometry 9th Edition Larson Solutions Manualkejeqadaqo
2.6K views163 slides
Computer fandamental bangla by soikot pdf by
Computer fandamental bangla by soikot pdfComputer fandamental bangla by soikot pdf
Computer fandamental bangla by soikot pdfShifat Ahmed
5.3K views27 slides
Fractions EB7.pdf by
Fractions EB7.pdfFractions EB7.pdf
Fractions EB7.pdfMaths avec TOMKO
417 views46 slides

What's hot(20)

第3回 データフレームの基本操作 その1 by Wataru Shito
第3回 データフレームの基本操作 その1第3回 データフレームの基本操作 その1
第3回 データフレームの基本操作 その1
Wataru Shito169 views
第8回 大規模データを用いたデータフレーム操作実習(2) by Wataru Shito
第8回 大規模データを用いたデータフレーム操作実習(2)第8回 大規模データを用いたデータフレーム操作実習(2)
第8回 大規模データを用いたデータフレーム操作実習(2)
Wataru Shito316 views
第4章 確率的学習---単純ベイズを使った分類 by Wataru Shito
第4章 確率的学習---単純ベイズを使った分類第4章 確率的学習---単純ベイズを使った分類
第4章 確率的学習---単純ベイズを使った分類
Wataru Shito560 views
Algebra and Trigonometry 9th Edition Larson Solutions Manual by kejeqadaqo
Algebra and Trigonometry 9th Edition Larson Solutions ManualAlgebra and Trigonometry 9th Edition Larson Solutions Manual
Algebra and Trigonometry 9th Edition Larson Solutions Manual
kejeqadaqo2.6K views
Computer fandamental bangla by soikot pdf by Shifat Ahmed
Computer fandamental bangla by soikot pdfComputer fandamental bangla by soikot pdf
Computer fandamental bangla by soikot pdf
Shifat Ahmed5.3K views
Sietmas de 4x4 by Edgar Mata
Sietmas de 4x4Sietmas de 4x4
Sietmas de 4x4
Edgar Mata8.8K views
Sistmas de 6x6 by Edgar Mata
Sistmas de 6x6Sistmas de 6x6
Sistmas de 6x6
Edgar Mata21.7K views
Kunci Jawaban kalkulus edisi 9[yunusFairVry.blogspot.com].pdf by MutiaraPutri41
Kunci Jawaban kalkulus edisi 9[yunusFairVry.blogspot.com].pdfKunci Jawaban kalkulus edisi 9[yunusFairVry.blogspot.com].pdf
Kunci Jawaban kalkulus edisi 9[yunusFairVry.blogspot.com].pdf
MutiaraPutri41180 views
Sistmas de 8x8 by Edgar Mata
Sistmas de 8x8Sistmas de 8x8
Sistmas de 8x8
Edgar Mata5.8K views
Sistmas de 10x10 by Edgar Mata
Sistmas de 10x10Sistmas de 10x10
Sistmas de 10x10
Edgar Mata10.7K views
Vedic Mathematics- Combined operation Sum and Product of Numbers by culturalcomputingindia
Vedic Mathematics- Combined operation Sum and Product of NumbersVedic Mathematics- Combined operation Sum and Product of Numbers
Vedic Mathematics- Combined operation Sum and Product of Numbers
ceb - 2013 - éveil - formation historique et géographique (ressource 9966) by LeSoir.be
ceb - 2013 - éveil - formation historique et géographique (ressource 9966)ceb - 2013 - éveil - formation historique et géographique (ressource 9966)
ceb - 2013 - éveil - formation historique et géographique (ressource 9966)
LeSoir.be57.9K views

Similar to 第6回 関数とフロー制御

سلسلة الليالى العشر فى الرياضيات للصف الثانى الابتدائى ترم اول by
سلسلة الليالى العشر فى الرياضيات للصف الثانى الابتدائى ترم اولسلسلة الليالى العشر فى الرياضيات للصف الثانى الابتدائى ترم اول
سلسلة الليالى العشر فى الرياضيات للصف الثانى الابتدائى ترم اولأمنية وجدى
9.2K views25 slides
The Ring programming language version 1.9 book - Part 69 of 210 by
The Ring programming language version 1.9 book - Part 69 of 210The Ring programming language version 1.9 book - Part 69 of 210
The Ring programming language version 1.9 book - Part 69 of 210Mahmoud Samir Fayed
20 views10 slides
The Ring programming language version 1.5.3 book - Part 69 of 184 by
The Ring programming language version 1.5.3 book - Part 69 of 184The Ring programming language version 1.5.3 book - Part 69 of 184
The Ring programming language version 1.5.3 book - Part 69 of 184Mahmoud Samir Fayed
15 views10 slides
Hand book of Howard Anton calculus exercises 8th edition by
Hand book of Howard Anton calculus exercises 8th editionHand book of Howard Anton calculus exercises 8th edition
Hand book of Howard Anton calculus exercises 8th editionPriSim
30.3K views676 slides
Useful javascript by
Useful javascriptUseful javascript
Useful javascriptLei Kang
286 views28 slides
11o Φ.Α. 8.1.pdf by
11o Φ.Α. 8.1.pdf11o Φ.Α. 8.1.pdf
11o Φ.Α. 8.1.pdfAnthimos Misailidis
373 views2 slides

Similar to 第6回 関数とフロー制御(20)

سلسلة الليالى العشر فى الرياضيات للصف الثانى الابتدائى ترم اول by أمنية وجدى
سلسلة الليالى العشر فى الرياضيات للصف الثانى الابتدائى ترم اولسلسلة الليالى العشر فى الرياضيات للصف الثانى الابتدائى ترم اول
سلسلة الليالى العشر فى الرياضيات للصف الثانى الابتدائى ترم اول
أمنية وجدى9.2K views
The Ring programming language version 1.9 book - Part 69 of 210 by Mahmoud Samir Fayed
The Ring programming language version 1.9 book - Part 69 of 210The Ring programming language version 1.9 book - Part 69 of 210
The Ring programming language version 1.9 book - Part 69 of 210
The Ring programming language version 1.5.3 book - Part 69 of 184 by Mahmoud Samir Fayed
The Ring programming language version 1.5.3 book - Part 69 of 184The Ring programming language version 1.5.3 book - Part 69 of 184
The Ring programming language version 1.5.3 book - Part 69 of 184
Hand book of Howard Anton calculus exercises 8th edition by PriSim
Hand book of Howard Anton calculus exercises 8th editionHand book of Howard Anton calculus exercises 8th edition
Hand book of Howard Anton calculus exercises 8th edition
PriSim30.3K views
Useful javascript by Lei Kang
Useful javascriptUseful javascript
Useful javascript
Lei Kang286 views
RではじめるTwitter解析 by Takeshi Arabiki
RではじめるTwitter解析RではじめるTwitter解析
RではじめるTwitter解析
Takeshi Arabiki23.6K views
سلسلة الليالى العشر فى الرياضيات للصف الثالث الابتدائى ترم اول by أمنية وجدى
سلسلة الليالى العشر فى الرياضيات للصف الثالث الابتدائى ترم اولسلسلة الليالى العشر فى الرياضيات للصف الثالث الابتدائى ترم اول
سلسلة الليالى العشر فى الرياضيات للصف الثالث الابتدائى ترم اول
أمنية وجدى6.9K views
A Course in Fuzzy Systems and Control Matlab Chapter two by Chung Hua Universit
A Course in Fuzzy Systems and Control Matlab Chapter twoA Course in Fuzzy Systems and Control Matlab Chapter two
A Course in Fuzzy Systems and Control Matlab Chapter two
Functional Gradient Boosting based on Residual Network Perception by Atsushi Nitanda
Functional Gradient Boosting based on Residual Network PerceptionFunctional Gradient Boosting based on Residual Network Perception
Functional Gradient Boosting based on Residual Network Perception
Atsushi Nitanda147 views
第4回 データフレームの基本操作 その2 by Wataru Shito
第4回 データフレームの基本操作 その2第4回 データフレームの基本操作 その2
第4回 データフレームの基本操作 その2
Wataru Shito116 views
HSK 7-9 V2021 Chinese Grammar Sample.pdf by LEGOO MANDARIN
HSK 7-9 V2021 Chinese Grammar Sample.pdfHSK 7-9 V2021 Chinese Grammar Sample.pdf
HSK 7-9 V2021 Chinese Grammar Sample.pdf
LEGOO MANDARIN74 views
Palestra sobre Collections com Python by pugpe
Palestra sobre Collections com PythonPalestra sobre Collections com Python
Palestra sobre Collections com Python
pugpe1.5K views
HSK 1 Chinese Grammar V2021 (2023 Updates) Sample.pdf by LEGOO MANDARIN
HSK 1 Chinese Grammar V2021 (2023 Updates) Sample.pdfHSK 1 Chinese Grammar V2021 (2023 Updates) Sample.pdf
HSK 1 Chinese Grammar V2021 (2023 Updates) Sample.pdf
LEGOO MANDARIN650 views

More from Wataru Shito

統計的推定の基礎 2 -- 分散の推定 by
統計的推定の基礎 2 -- 分散の推定統計的推定の基礎 2 -- 分散の推定
統計的推定の基礎 2 -- 分散の推定Wataru Shito
364 views3 slides
統計的推定の基礎 1 -- 期待値の推定 by
統計的推定の基礎 1 -- 期待値の推定統計的推定の基礎 1 -- 期待値の推定
統計的推定の基礎 1 -- 期待値の推定Wataru Shito
217 views7 slides
演習II.第1章 ベイズ推論の考え方 Part 3.講義ノート by
演習II.第1章 ベイズ推論の考え方 Part 3.講義ノート演習II.第1章 ベイズ推論の考え方 Part 3.講義ノート
演習II.第1章 ベイズ推論の考え方 Part 3.講義ノートWataru Shito
94 views5 slides
演習II.第1章 ベイズ推論の考え方 Part 3.スライド by
演習II.第1章 ベイズ推論の考え方 Part 3.スライド演習II.第1章 ベイズ推論の考え方 Part 3.スライド
演習II.第1章 ベイズ推論の考え方 Part 3.スライドWataru Shito
93 views25 slides
演習II.第1章 ベイズ推論の考え方 Part 2.講義ノート by
演習II.第1章 ベイズ推論の考え方 Part 2.講義ノート演習II.第1章 ベイズ推論の考え方 Part 2.講義ノート
演習II.第1章 ベイズ推論の考え方 Part 2.講義ノートWataru Shito
116 views10 slides
演習II.第1章 ベイズ推論の考え方 Part 2.スライド by
演習II.第1章 ベイズ推論の考え方 Part 2.スライド演習II.第1章 ベイズ推論の考え方 Part 2.スライド
演習II.第1章 ベイズ推論の考え方 Part 2.スライドWataru Shito
226 views107 slides

More from Wataru Shito(20)

統計的推定の基礎 2 -- 分散の推定 by Wataru Shito
統計的推定の基礎 2 -- 分散の推定統計的推定の基礎 2 -- 分散の推定
統計的推定の基礎 2 -- 分散の推定
Wataru Shito364 views
統計的推定の基礎 1 -- 期待値の推定 by Wataru Shito
統計的推定の基礎 1 -- 期待値の推定統計的推定の基礎 1 -- 期待値の推定
統計的推定の基礎 1 -- 期待値の推定
Wataru Shito217 views
演習II.第1章 ベイズ推論の考え方 Part 3.講義ノート by Wataru Shito
演習II.第1章 ベイズ推論の考え方 Part 3.講義ノート演習II.第1章 ベイズ推論の考え方 Part 3.講義ノート
演習II.第1章 ベイズ推論の考え方 Part 3.講義ノート
Wataru Shito94 views
演習II.第1章 ベイズ推論の考え方 Part 3.スライド by Wataru Shito
演習II.第1章 ベイズ推論の考え方 Part 3.スライド演習II.第1章 ベイズ推論の考え方 Part 3.スライド
演習II.第1章 ベイズ推論の考え方 Part 3.スライド
Wataru Shito93 views
演習II.第1章 ベイズ推論の考え方 Part 2.講義ノート by Wataru Shito
演習II.第1章 ベイズ推論の考え方 Part 2.講義ノート演習II.第1章 ベイズ推論の考え方 Part 2.講義ノート
演習II.第1章 ベイズ推論の考え方 Part 2.講義ノート
Wataru Shito116 views
演習II.第1章 ベイズ推論の考え方 Part 2.スライド by Wataru Shito
演習II.第1章 ベイズ推論の考え方 Part 2.スライド演習II.第1章 ベイズ推論の考え方 Part 2.スライド
演習II.第1章 ベイズ推論の考え方 Part 2.スライド
Wataru Shito226 views
演習II.第1章 ベイズ推論の考え方 Part 1.講義ノート by Wataru Shito
演習II.第1章 ベイズ推論の考え方 Part 1.講義ノート演習II.第1章 ベイズ推論の考え方 Part 1.講義ノート
演習II.第1章 ベイズ推論の考え方 Part 1.講義ノート
Wataru Shito226 views
マクロ経済学I 「第8章 総需要・総供給分析(AD-AS分析)」 by Wataru Shito
マクロ経済学I 「第8章 総需要・総供給分析(AD-AS分析)」マクロ経済学I 「第8章 総需要・総供給分析(AD-AS分析)」
マクロ経済学I 「第8章 総需要・総供給分析(AD-AS分析)」
Wataru Shito432 views
経済数学II 「第9章 最適化(Optimization)」 by Wataru Shito
経済数学II 「第9章 最適化(Optimization)」経済数学II 「第9章 最適化(Optimization)」
経済数学II 「第9章 最適化(Optimization)」
Wataru Shito249 views
マクロ経済学I 「第10章 総需要 II.IS-LM分析とAD曲線」 by Wataru Shito
マクロ経済学I 「第10章 総需要 II.IS-LM分析とAD曲線」マクロ経済学I 「第10章 総需要 II.IS-LM分析とAD曲線」
マクロ経済学I 「第10章 総需要 II.IS-LM分析とAD曲線」
Wataru Shito436 views
第9回 大規模データを用いたデータフレーム操作実習(3) by Wataru Shito
第9回 大規模データを用いたデータフレーム操作実習(3)第9回 大規模データを用いたデータフレーム操作実習(3)
第9回 大規模データを用いたデータフレーム操作実習(3)
Wataru Shito300 views
経済数学II 「第12章 制約つき最適化」 by Wataru Shito
経済数学II 「第12章 制約つき最適化」経済数学II 「第12章 制約つき最適化」
経済数学II 「第12章 制約つき最適化」
Wataru Shito379 views
マクロ経済学I 「第9章 総需要 I」 by Wataru Shito
マクロ経済学I 「第9章 総需要 I」マクロ経済学I 「第9章 総需要 I」
マクロ経済学I 「第9章 総需要 I」
Wataru Shito582 views
経済数学II 「第11章 選択変数が2個以上の場合の最適化」 by Wataru Shito
経済数学II 「第11章 選択変数が2個以上の場合の最適化」経済数学II 「第11章 選択変数が2個以上の場合の最適化」
経済数学II 「第11章 選択変数が2個以上の場合の最適化」
Wataru Shito269 views
マクロ経済学I 「第6章 開放経済の長期分析」 by Wataru Shito
マクロ経済学I 「第6章 開放経済の長期分析」マクロ経済学I 「第6章 開放経済の長期分析」
マクロ経済学I 「第6章 開放経済の長期分析」
Wataru Shito777 views
経済数学II 「第8章 一般関数型モデルの比較静学」 by Wataru Shito
経済数学II 「第8章 一般関数型モデルの比較静学」経済数学II 「第8章 一般関数型モデルの比較静学」
経済数学II 「第8章 一般関数型モデルの比較静学」
Wataru Shito295 views
マクロ経済学I 「第4,5章 貨幣とインフレーション」 by Wataru Shito
マクロ経済学I 「第4,5章 貨幣とインフレーション」マクロ経済学I 「第4,5章 貨幣とインフレーション」
マクロ経済学I 「第4,5章 貨幣とインフレーション」
Wataru Shito620 views
マクロ経済学I 「第3章 長期閉鎖経済モデル」 by Wataru Shito
マクロ経済学I 「第3章 長期閉鎖経済モデル」マクロ経済学I 「第3章 長期閉鎖経済モデル」
マクロ経済学I 「第3章 長期閉鎖経済モデル」
Wataru Shito781 views
経済数学II 「第7章 微分法とその比較静学への応用」 by Wataru Shito
経済数学II 「第7章 微分法とその比較静学への応用」経済数学II 「第7章 微分法とその比較静学への応用」
経済数学II 「第7章 微分法とその比較静学への応用」
Wataru Shito306 views
経済数学II 「第6章 比較静学と導関数の概念」 by Wataru Shito
経済数学II 「第6章 比較静学と導関数の概念」経済数学II 「第6章 比較静学と導関数の概念」
経済数学II 「第6章 比較静学と導関数の概念」
Wataru Shito237 views

Recently uploaded

CRIJ4385_Death Penalty_F23.pptx by
CRIJ4385_Death Penalty_F23.pptxCRIJ4385_Death Penalty_F23.pptx
CRIJ4385_Death Penalty_F23.pptxyvettemm100
6 views24 slides
Survey on Factuality in LLM's.pptx by
Survey on Factuality in LLM's.pptxSurvey on Factuality in LLM's.pptx
Survey on Factuality in LLM's.pptxNeethaSherra1
6 views9 slides
[DSC Europe 23] Zsolt Feleki - Machine Translation should we trust it.pptx by
[DSC Europe 23] Zsolt Feleki - Machine Translation should we trust it.pptx[DSC Europe 23] Zsolt Feleki - Machine Translation should we trust it.pptx
[DSC Europe 23] Zsolt Feleki - Machine Translation should we trust it.pptxDataScienceConferenc1
5 views12 slides
CRM stick or twist.pptx by
CRM stick or twist.pptxCRM stick or twist.pptx
CRM stick or twist.pptxinfo828217
10 views16 slides
MOSORE_BRESCIA by
MOSORE_BRESCIAMOSORE_BRESCIA
MOSORE_BRESCIAFederico Karagulian
5 views8 slides
Advanced_Recommendation_Systems_Presentation.pptx by
Advanced_Recommendation_Systems_Presentation.pptxAdvanced_Recommendation_Systems_Presentation.pptx
Advanced_Recommendation_Systems_Presentation.pptxneeharikasingh29
5 views9 slides

Recently uploaded(20)

CRIJ4385_Death Penalty_F23.pptx by yvettemm100
CRIJ4385_Death Penalty_F23.pptxCRIJ4385_Death Penalty_F23.pptx
CRIJ4385_Death Penalty_F23.pptx
yvettemm1006 views
Survey on Factuality in LLM's.pptx by NeethaSherra1
Survey on Factuality in LLM's.pptxSurvey on Factuality in LLM's.pptx
Survey on Factuality in LLM's.pptx
NeethaSherra16 views
[DSC Europe 23] Zsolt Feleki - Machine Translation should we trust it.pptx by DataScienceConferenc1
[DSC Europe 23] Zsolt Feleki - Machine Translation should we trust it.pptx[DSC Europe 23] Zsolt Feleki - Machine Translation should we trust it.pptx
[DSC Europe 23] Zsolt Feleki - Machine Translation should we trust it.pptx
CRM stick or twist.pptx by info828217
CRM stick or twist.pptxCRM stick or twist.pptx
CRM stick or twist.pptx
info82821710 views
Advanced_Recommendation_Systems_Presentation.pptx by neeharikasingh29
Advanced_Recommendation_Systems_Presentation.pptxAdvanced_Recommendation_Systems_Presentation.pptx
Advanced_Recommendation_Systems_Presentation.pptx
Short Story Assignment by Kelly Nguyen by kellynguyen01
Short Story Assignment by Kelly NguyenShort Story Assignment by Kelly Nguyen
Short Story Assignment by Kelly Nguyen
kellynguyen0119 views
Data Journeys Hard Talk workshop final.pptx by info828217
Data Journeys Hard Talk workshop final.pptxData Journeys Hard Talk workshop final.pptx
Data Journeys Hard Talk workshop final.pptx
info82821710 views
CRM stick or twist workshop by info828217
CRM stick or twist workshopCRM stick or twist workshop
CRM stick or twist workshop
info8282179 views
Cross-network in Google Analytics 4.pdf by GA4 Tutorials
Cross-network in Google Analytics 4.pdfCross-network in Google Analytics 4.pdf
Cross-network in Google Analytics 4.pdf
GA4 Tutorials6 views
Data about the sector workshop by info828217
Data about the sector workshopData about the sector workshop
Data about the sector workshop
info82821712 views
[DSC Europe 23] Spela Poklukar & Tea Brasanac - Retrieval Augmented Generation by DataScienceConferenc1
[DSC Europe 23] Spela Poklukar & Tea Brasanac - Retrieval Augmented Generation[DSC Europe 23] Spela Poklukar & Tea Brasanac - Retrieval Augmented Generation
[DSC Europe 23] Spela Poklukar & Tea Brasanac - Retrieval Augmented Generation
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M... by DataScienceConferenc1
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...
UNEP FI CRS Climate Risk Results.pptx by pekka28
UNEP FI CRS Climate Risk Results.pptxUNEP FI CRS Climate Risk Results.pptx
UNEP FI CRS Climate Risk Results.pptx
pekka2811 views
SUPER STORE SQL PROJECT.pptx by khan888620
SUPER STORE SQL PROJECT.pptxSUPER STORE SQL PROJECT.pptx
SUPER STORE SQL PROJECT.pptx
khan88862012 views

第6回 関数とフロー制御

  • 1. 6 2020 3 8 1 1 2 1 2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3 5 3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1.1 if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1.2 ifelse() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.1.3 switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2.1 for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2.2 while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.4 apply . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1 • • 2 csv read.csv() data.frame() 1
  • 2. 2.1 6 2.1 function() Hello World! hello() 1 + + > hello <- function() { # + cat("Hello Worldn") + } > hello() # Hello World function() { } function() ( ) name > hello <- function(name) { + cat (" ", name, "n", sep="") + } > hello(" !") ! > add <- function (x, y) { + x + y + } > add(10, 5) [1] 15 add() x y add(10, 5) 10 5 2.2 > calc <- function (x, y) { + x * y + x - y + x + y # calc I 2
  • 3. 2.3 6 + } > calc (3, 4) [1] 7 return() > calc <- function (x, y) { + x * y + x - y + return(x + y) # + } > calc (1, 2) [1] 3 return() 2 > calc <- function (x, y) { + x * y + return(x - y) # x-y + x + y # + } > calc (1, 2) [1] -1 2.3 hello() name " " hello() name " " > hello <- function(name=" ") { # name + cat (" ", name, "n", sep="") + } > hello() # name > hello(" !") # name ! ! name birthday I 3
  • 4. 2.4 6 > greeting <- function(name, birthday, greet=" ", to=" ") { + str <- paste(to, " ", greet, " ", + " ", name, " ", + " ", birthday, " ", sep="") + str + } > greeting(" ", "4 1 ") # greet to [1] " 4 1 " str str R str str greeting() > greeting(" ", "4 1 ", " ") # to [1] " 4 1 " > greeting(" ", "4 1 ", " ", " ") [1] " 4 1 " greet 3 greet > greeting(" ", "4 1 ", " ") [1] " 4 1 " > greeting(" ", "4 1 ", to=" ") [1] " 4 1 " > greeting(greet=" ", name=" ", to=" ", birthday="4 1 ") [1] " 4 1 " 2.4 greeting() g g() greeting() I 4
  • 5. 6 > g <- greeting > g(name=" ", birthday="4 ") [1] " 4 " add() adder() x y add > add <- function(x, y, adder) { + adder(x, y) + } add add.num() add add.str() > add.num <- function(x, y) { + x + y # + } > add.str <- function(x, y) { + paste(x, y) # + } add() > add(1, 5, add.num) [1] 6 > add("a", "b", add.str) [1] "a b" > add("a", "b", function(x, y) {paste(x, y, sep="+")}) [1] "a+b" 3 I 5
  • 6. 3.1 6 3.1 3.1.1 if TRUE FALSE if if > absolute.value <- function(x) { + if (x > 0) { + x # x > 0 TRUE x + } else { + -x # x > 0 FALSE x + } + } > absolute.value(5) [1] 5 > absolute.value(-9) [1] 9 TRUE return(x) x FALSE else > absolute.value <- function(x) { + if (x > 0) { + return(x) # x > 0 TRUE x + } + -x # x > 0 FALSE x + } > absolute.value(-100) [1] 100 > absolute.value(4) [1] 4 if-else 90 A 80 B 60 C D grade() > grade <- function(score) { + if (score >= 90) { + "A" + } else if (score >= 80) { + "B" + } else if (score >= 60) { + "C" + } else { + "D" + } + } > grade(100) [1] "A" I 6
  • 7. 3.1 6 > grade(34) [1] "D" > grade(65) [1] "C" > grade(83) [1] "B" grade() else if { } else if 1 1 > grade <- function(score) { + if (score >= 90) { + "A" + } else { + if (score >= 80) { + "B" + } else { + if (score >= 60) { + "C" + } else { + "D" + } + } + } + } if grade() if else 1 > grade <- function(score) { + if (score >= 90) + "A" + else if (score >= 80) + "B" + else if (score >= 60) + "C" + else + "D" + } 3.1.2 ifelse() if-else ifelse() ifelse() ifelse() I 7
  • 8. 3.2 6 ifelse( , , ) > absolute.value <- function(x) { # ifelse + ifelse(x > 0, x, -x) + } > grade <- function(score) { # ifelse + ifelse(score >= 90, "A", + ifelse(score >= 80, "B", + ifelse(score >= 60, "C", "D"))) + } ifelse() 3.1.3 switch if-else 2 switch() switch( , 1, 2, 3, ...) 1 > switch(3, " 1", " 2", " 3", " 4") # 3 [1] " 3" > switch("b", a=" 1", b=" 2", c=" 3") # b [1] " 2" 3.2 R for while R 3.4 apply 3.2.1 for for for(i in ) i i { } I 8
  • 9. 3.2 6 > z <- 0 # z 0 > for(i in 1:10) { + z <- z + i # 1 10 + } > z # for z [1] 55 > for(n in c("a", "b", "c", "d")) # + cat(toupper(n), "n") # toupper() A B C D for 2 > for(i in 1:5) { + for(j in 1:5) + cat(i, "-", j, ", ", sep="") + cat("n") + } 1-1, 1-2, 1-3, 1-4, 1-5, 2-1, 2-2, 2-3, 2-4, 2-5, 3-1, 3-2, 3-3, 3-4, 3-5, 4-1, 4-2, 4-3, 4-4, 4-5, 5-1, 5-2, 5-3, 5-4, 5-5, 3.2.2 while while > countdown <- function(n) { # n 0 + while (n != 0) { + cat(n, ", ", sep="") + n <- ifelse (n >= 0, n-1, n+1) # n + } + cat("0n") + } > countdown(10) 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 > countdown(-5) -5, -4, -3, -2, -1, 0 I 9
  • 10. 3.3 6 3.3 (1) (7) 3 GDP ppp GDP compare.gdp() 2010 > compare.gdp(ppp, 2010) Qatar 117518.7 Japan 34986.99 Congo, Dem. Rep. 646.2954 (2) x y gcd(x, y) 3.4 apply for while R apply apply 1 1 2 4 ? 3 2 ? I 10