- (1/4) 기타연산자 (1)

- (1/4) 기타연산자 (2)

- (3/4) 기타연산자 (3)

- (4/4) 숙제해설

할당연산자

- 예제1

a<-1
a
[1] 1
a=10
a
[1] 10

- 예제2

2 -> a
a
[1] 2

- 잘못된사용

2 = a
Error in 2 = a: invalid (do_set) left-hand side to assignment
Traceback:

- 예제3

a<-b<-3
c(a,b)
[1] 3 3
a=b=4
c(a,b)
[1] 4 4

- 잘못된사용

a<-3<-b
Error in 3 <- b: invalid (do_set) left-hand side to assignment
Traceback:
3<-b
Error in 3 <- b: invalid (do_set) left-hand side to assignment
Traceback:

- 잘못된사용

a=3=b
Error in 3 = b: invalid (do_set) left-hand side to assignment
Traceback:

- 예제4

a<- 5 -> b
c(a,b)
[1] 5 5

- 예제5

f <- function(x) x**2
f(100)
[1] 10000
f = function(x) x**2
f(8)
[1] 64

- 개인적으로는 <- 를 없애고 = 할당만 있는것도 좋을것 같다. 왜냐하면

a=-2
a< -3
[1] FALSE
a<-3
a
[1] 3

와 같이 헷갈리는 상황이 종종 발생하기 때문

:연산자

- 예제1

4:6
[1] 4 5 6
6:4
[1] 6 5 4

()연산자

- 예제1

3+4*3
[1] 15
(3+4)*3
[1] 21

- 예제2: 표현식을 만들때 연산자 우선순위에 대한 자신이 없는 경우 사용

1:3*2
[1] 2 4 6
(1:3)*2
[1] 2 4 6
1:(3*2)
[1] 1 2 3 4 5 6

{}연산자: 여러개의 표현식을 하나의 표현식처럼!

- 주로 if, for, function과 함께 사용된다.

- 예제1

x<-6
if(x>5){
    x<-10
    y<-20
}
c(x,y)
[1] 10 20

[]연산자: 원소참조 연산자

- 예제1

a<- 6:-2
a
[1]  6  5  4  3  2  1  0 -1 -2
a[2]
[1] 5

- 예제2

a[a>2]
[1] 6 5 4 3

- 예제3

a[c(1,2)]
[1] 6 5

- 예제4

a[-c(1,2)]
[1]  4  3  2  1  0 -1 -2
-c(1,2)
[1] -1 -2

- 아래와 같이 사용할수는 없다.

a[c(-1,2)]
Error in a[c(-1, 2)]: only 0's may be mixed with negative subscripts
Traceback:

#연산자: 주석연산자


  • 틀린코드이지만 어차피 아무것도 실행되지 않아서 에러가 나지는 않음

- 블락단위로 주석을 만드는 방법

  • 주피터: 컨트롤 + /
  • Rstudio: 컨트롤 + 쉬프트 + c
# asdfasdfasdf
# asdfasdfasdfasdf
# sdfasdfasdf

?연산자: 도움말 연산자

;연산자: 연결연산자

- 예제1: 두개의 표현식은 원래 한줄에 쓸 수 없다. 그런데 ; 를 사용하면 쓸 수 있다.

a=1, b=2
Error in parse(text = x, srcfile = src): <text>:1:4: unexpected ','
1: a=1,
       ^
Traceback:
a=1;b=2
c(a,b)
[1] 1 2

- 아래와 같이 표현식의 마지막이 세미콜론으로 끝나도 괜찮음

a=3;b=4;
c(a,b)
[1] 3 4

연산자 우선순위

- 예제1

1:3**2
[1] 1 2 3 4 5 6 7 8 9

- 좀 더 명확하게 아래와 같이 쓰자.

1:(3**2)
[1] 1 2 3 4 5 6 7 8 9
(1:3)**2
[1] 1 4 9

- 예제2

2^2:-1
[1]  4  3  2  1  0 -1

- 명확하게

(2^2):-1
[1]  4  3  2  1  0 -1
2^(2:-1)
[1] 4.0 2.0 1.0 0.5