티스토리 뷰

v=c(2,4,5,1,5,1,2)이다.

v[v<3] 벡터 v의 원소 중에서 3보다 작은 모든 원소를 벡터로 반환한다!

 

1. b=c(3,3,3,3,3,3)으로 놓으면,

v<3v<b와 같다.

 


2. 따라서 v<b의 결과는 c(T,F,F,T,F,T,T)

여기서는 v<b의 첫 번째 논리값 Tv[1]<b[1], v[1]<3의 결과이다. v<b = v<c(3,3,3,3,3,3,3) = v<3의 첫 번째 원소 T v[1]<3이 참임을 나타낸다.(v<3의 결과는 논리값 벡터로 일곱 개의 원소로 이루어진다.)

마찬가지로 v<b의 두 번째 논리값 Fv[2]<b[2], v[2]<3의 결과이다.

따라서 v<3의 두 번째 원소 Fv[2]<3가 거짓임을 나타낸다.

 

이렇게 v<3n 번째 원소는 v[n]<3의 결과(참 또는 거짓)을 나타낸다.

 

3. v<b의 결과가 c(T,F,F,T,F,T,T)이므로,

v[v<b]v[c(T,F,F,T,F,T,T)]이다.

v[c(T,F,F,T,F,T,T)]v의 원소 중에서

c(T,F,F,T,F,T,T)의 논리값이 T인 위치의 원소를 참조한다.

c(T,F,F,T,F,T,T)는 첫 번째, 네 번째, 여섯 번째, 일곱 번째 위치에서 참이므로,

v[c(T,F,F,T,F,T,T)]=v[c(1,4,6,7)]이 된다.

그런데 위에서 봤듯이 첫 번째, 네 번째, 여섯 번째, 일곱 번째 위치가 참인 이유는

v[1]<3, v[4]<3, v[6]<3, v[7]<3을 만족하기 때문이다.

 

따라서 v[v<3]의 결과는 c(2,1,1,2)이고,

그것은 v의 원소 중에서 3보다 작은 원소들이다.


* R은 v<3를 계산하기 전에 벡터 v와 벡터 3의 길이를 맞춘다. 그렇다. R은 모든 것을 벡터로 생각한다. 3도 원소가 하나 뿐인 벡터이다. v의 원소의 갯수는 7. 따라서 벡터 3의 원소의 갯수를 3으로 늘려주는데, 가장 편한 것이 반복하는 것이다. 


* 그렇다면 v<c(1,2)는 어떻게 될까? 원소 1, 2를 반복하면 어떻게 될까?

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함