강의영상

- (1/8): 과제제출 연장안내

- (2/8): 아나콘다 설치 1

- (3/8): 아나콘다 설치 2, 주피터랩을 사용하여 R실습해보기

- (4/8): 변수이름 선언하기

- (5/8): 변수이름 선언하는 팁

- (6/8): 벡터선언하기 1

- (7/8): 벡터선언하기 2, 함수선언

- (8/8): 과제설명

변수이름에 어떠한 값을 넣는 방법

- 방법1

d=1

- 방법2

e <- 3

주의할점: 쓸 수 없는 변수명이 있다.

(1) 특수문자 불가능

a! <- 3
Error in parse(text = x, srcfile = src): <text>:1:2: unexpected '!'
1: a!
     ^
Traceback:

(2) 숫자로 시작하는 변수이름 불가능

2a <- 3
Error in parse(text = x, srcfile = src): <text>:1:2: unexpected symbol
1: 2a
     ^
Traceback:
a2 <- 3
  • 이것은 가능 (숫자로 시작되면 안되는 것이지 숫자를 포함하지 말라는 의미는 아님)

(3) 띄어쓰기 불가능

Guebin Choi <- 33
Error in parse(text = x, srcfile = src): <text>:1:8: unexpected symbol
1: Guebin Choi
           ^
Traceback:
this_is_333 <- 333
  • 띄어쓰기 대신 언더바(_)를 활용한다.
this.is.777 <- 777
  • 언더바 말고 닷(.)을 선호하는 사람도 있다.

(4) 언더바를 포함하는 것은 가능하지만, 언더바로 시작하는 변수명은 사용할 수 없다. `

_x <- 33
Error in parse(text = x, srcfile = src): <text>:1:1: unexpected input
1: _
    ^
Traceback:

(5) 사용할 수는 있지만 권장하지 않는 변수이름

pi
[1] 3.141593
pi<-333
pi
[1] 333

(6) 팁..

- 변수를 축약할때 모음을 제외하면 좋다.

  • result -> rslt
  • residual -> rsdl

- 임시로 변수명을 사용해야 할 경우: 변수이름 끝에 언더바를 붙인다.

  • x , y, rslt_, ...

벡터를 선언하는 방법

- 방법1: 직접 입력

c(1,2,3,3,4,5,2)
[1] 1 2 3 3 4 5 2

- 방법2: seq 를 이용

seq(from=0,to=10,by=0.1) # 0~10 까지 0.1의 간격으로 수열만들기
  [1]  0.0  0.1  0.2  0.3  0.4  0.5  0.6  0.7  0.8  0.9  1.0  1.1  1.2  1.3  1.4
 [16]  1.5  1.6  1.7  1.8  1.9  2.0  2.1  2.2  2.3  2.4  2.5  2.6  2.7  2.8  2.9
 [31]  3.0  3.1  3.2  3.3  3.4  3.5  3.6  3.7  3.8  3.9  4.0  4.1  4.2  4.3  4.4
 [46]  4.5  4.6  4.7  4.8  4.9  5.0  5.1  5.2  5.3  5.4  5.5  5.6  5.7  5.8  5.9
 [61]  6.0  6.1  6.2  6.3  6.4  6.5  6.6  6.7  6.8  6.9  7.0  7.1  7.2  7.3  7.4
 [76]  7.5  7.6  7.7  7.8  7.9  8.0  8.1  8.2  8.3  8.4  8.5  8.6  8.7  8.8  8.9
 [91]  9.0  9.1  9.2  9.3  9.4  9.5  9.6  9.7  9.8  9.9 10.0
seq(from=0, to=1, length.out = 27) # 0~1 까지 등간격으로 총 27개의 수열만들기
 [1] 0.00000000 0.03846154 0.07692308 0.11538462 0.15384615 0.19230769
 [7] 0.23076923 0.26923077 0.30769231 0.34615385 0.38461538 0.42307692
[13] 0.46153846 0.50000000 0.53846154 0.57692308 0.61538462 0.65384615
[19] 0.69230769 0.73076923 0.76923077 0.80769231 0.84615385 0.88461538
[25] 0.92307692 0.96153846 1.00000000

- 방법3: : 를 이용

1:22
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22

이 방법을 살짝 응용하면 0~1까지 57개의 변수를 넣는 방법을 아래와 같이 할 수 있다.

print(0:56 / 56)
 [1] 0.00000000 0.01785714 0.03571429 0.05357143 0.07142857 0.08928571
 [7] 0.10714286 0.12500000 0.14285714 0.16071429 0.17857143 0.19642857
[13] 0.21428571 0.23214286 0.25000000 0.26785714 0.28571429 0.30357143
[19] 0.32142857 0.33928571 0.35714286 0.37500000 0.39285714 0.41071429
[25] 0.42857143 0.44642857 0.46428571 0.48214286 0.50000000 0.51785714
[31] 0.53571429 0.55357143 0.57142857 0.58928571 0.60714286 0.62500000
[37] 0.64285714 0.66071429 0.67857143 0.69642857 0.71428571 0.73214286
[43] 0.75000000 0.76785714 0.78571429 0.80357143 0.82142857 0.83928571
[49] 0.85714286 0.87500000 0.89285714 0.91071429 0.92857143 0.94642857
[55] 0.96428571 0.98214286 1.00000000

물론 아래와 같이하는것이 더 가독성이 좋다.

print(seq(from=0,to=1,length.out =57))
 [1] 0.00000000 0.01785714 0.03571429 0.05357143 0.07142857 0.08928571
 [7] 0.10714286 0.12500000 0.14285714 0.16071429 0.17857143 0.19642857
[13] 0.21428571 0.23214286 0.25000000 0.26785714 0.28571429 0.30357143
[19] 0.32142857 0.33928571 0.35714286 0.37500000 0.39285714 0.41071429
[25] 0.42857143 0.44642857 0.46428571 0.48214286 0.50000000 0.51785714
[31] 0.53571429 0.55357143 0.57142857 0.58928571 0.60714286 0.62500000
[37] 0.64285714 0.66071429 0.67857143 0.69642857 0.71428571 0.73214286
[43] 0.75000000 0.76785714 0.78571429 0.80357143 0.82142857 0.83928571
[49] 0.85714286 0.87500000 0.89285714 0.91071429 0.92857143 0.94642857
[55] 0.96428571 0.98214286 1.00000000

- 방법4: rep를 이용

rep(0,100)
  [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [38] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 [75] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

함수사용하는 방법

- 기본 구조

함수이름 <- function(입력){
    함수의 기능 
    return(출력)
    }
f<-function(d){
    I0=1
    Id=I0*0.25 
    y=I0*2^(-0.25*d)/Id
    return(y)
}
f(8)
[1] 1

- 아래의 2개의 코드는 거의 같다.

### 1 
f<-function(d){
    I0=1
    Id=I0*0.25 
    y=I0*2^(-0.25*d)/Id
    return(y)
}
f(8)

### 2
d=8
I0=1
Id=I0*0.25
y=I0*2^(-0.25*d)/Id
[1] 1

- return을 생략해도 괜찮다.

f<-function(d){
    I0=1
    Id=I0*0.25 
    y=I0*2^(-0.25*d)/Id
    y
}
f(8)
[1] 1

숙제

- 주피터랩으로 R실습할 수 있는 환경을 설정