R
Vectors (seq, rep)
(이경수)
2021. 4. 20. 15:59
연속된 정수로 이루어진 벡터는 start : end 와 같은 형식으로 정의한다. 만일 공차 d인 수열을 만들고자 한다면 아래 예와 같이 seq(from, to, d) 와 같은 형식으로 정의를 해 주면 된다.
> x <- 1:10
> x
[1] 1 2 3 4 5 6 7 8 9 10
> x <- seq(1, 10)
> x
[1] 1 2 3 4 5 6 7 8 9 10
> x <- seq(1, 10, 2)
> x
[1] 1 3 5 7 9
> x <- seq(1, 10, 3)
> x
[1] 1 4 7 10
seq_along()은 인자로 들어오는 데이터의 수(n)에 따라 1:n 인 벡터를 만들며, seq_len(n)는 1:n 인 벡터를 만들어 낸다.
> seq_along(c("k", "o", "r", "e", "a"))
[1] 1 2 3 4 5
> seq_len(3)
[1] 1 2 3
rep()는 동일한 데이터 패턴을 반복적으로 갖는 벡터를 만들어 낸다.
> rep(c("a", "b"), 3)
[1] "a" "b" "a" "b" "a" "b"
> rep(c("a", "b"), each=3)
[1] "a" "a" "a" "b" "b" "b"
벡터를 집합으로 취급하여 집합의 연산을 가능하게 하는 함수도 있다.
- setdiff : 차집합
- union : 합집합
- intersect : 교집합
- setequal : 집합의 상등 판별
> setdiff(c("k", "o", "r", "e", "a"), c("o", "r", "a", "n", "g", "e"))
[1] "k"
> setdiff(c("o", "r", "a", "n", "g", "e"), c("k", "o", "r", "e", "a"))
[1] "n" "g"
> union(c("o", "r", "a", "n", "g", "e"), c("k", "o", "r", "e", "a"))
[1] "o" "r" "a" "n" "g" "e" "k"
> intersect(c("o", "r", "a", "n", "g", "e"), c("k", "o", "r", "e", "a"))
[1] "o" "r" "a" "e"
> setequal(c("o", "r", "a", "n", "g", "e"), c("k", "o", "r", "e", "a"))
[1] FALSE