1. 난수 생성
난수는 위와 같이 rnorm(값)으로 나타낼 수 있다.
rnorm은 n개의 정규 분포를 하는 난수를 생성해준다.
이때 난수 값은 소수점으로 나타나기에 자신이 원하는 범위로 곱하고 정수 나눗셈을 해주면 원하는 정수 난수를 얻을 수 있게 된다.
난수를 얻는 또다른 방법은 sample 함수이다.
sample(i:j, k) i~j번째 수중 k개를 뽑아라는 의미
이때 sample함수 자체가 벡터를 의미하고 있기에 c(sample(1:99, 9))로 하지 않아도 된다.
만약 정렬된 난수를 받고 싶다면
x <- sort(sample(i:j, k))를 하면 된다.
2. 정렬
length(x)
벡터 x의 길이를 구해준다.
range(x)
x의 범위를 구해준다.
rev(x)
x를 역순으로 정렬해준다. (= reverse)
sort(x)
x를 오름차순으로 정렬해준다.
sort(x, decreasing=TRUE)
x를 내림차순으로 정렬해준다.
order(x)
벡터 x에서 값이 몇번째에 존재해야 순서가 맞는지 알려준다.
예를들어보자.
1,3,4,2가 있다면
1,2,3,4로 정렬되야 하는데
이때 현재 벡터에서 존재하고 있는 각 1,2,3,4의 위치가
1(1),4(2),2(3),3(4)이라는 것이다.
따라서 order(x)를 하면 1 4 2 3이라는 것이다.
order(x, decreasing =TRUE)
마찬가지로 내림차순이 되기 위해
1,3,4,2가 있다면
4,3,2,1로 정렬되야 하니
3(4),2(3),4(2),1(1)이 되야 한다.
3. 인덱싱
파이썬과 동일하게 n:k 인덱싱이 가능하다.
이때 0:5를 하면 0번인덱스부터 5번인덱스까지인데
R에서는 0번 인덱스가 자료형을 나타내고 있다고 말했다.
그래서 예외적으로 0:5라고 하면 그냥 1:5와 동일하게 나타난다.
x[-1]의 의미는 1번 인덱스를 제외하고 출력하라는 뜻이다.
즉, x[-k]의 의미는 k번 인덱스를 제외한 모든 것을 출력하는 뜻이된다.
x[a < x & x < b]의 의미는 a보다 크고 b보다 작은 벡터값을 출력하는 의미이다.
벡터에서는 위와 같이 벡터 생성을 할 수 있다.
x <- i:j를 하면 i~j의 수가 벡터에 대입되고
seq(k)를 하면 1~k까지 수가 대입된다.
seq(from = i, to = j, by = k)를 하면 i~j까지 수가 대입되는데 간격이 k로 되어 대입된다.
4. 벡터 연산
벡터에서 append 기능이 있다.
x <- append(x,y)를 하면 x뒤에 y를 붙이라는 의미가 되고
x <- append(x,y,after=k)를 하면 x 뒤 k번째에 y를 붙이라는 의미가 된다.(끼워넣기)
그리고 벡터끼리 합이 가능한데
x + y를 하면 x의 i번째 인덱스와 y의 i번째 인덱스를 더하게 된다.
이때 x와 y의 벡터 길이가 다르다면 오류가 나타난다.(Warning message)
하지만 더하기 연산은 결국 이루어 지게 된다.
즉, x는 1,2,3이고 y는 3,4이면 x + y는 4,6,3이 되지만 warning이 나타나게 된다.
R에서는 집합으로의 연산도 지원한다.
union(x,y) :: x와 y의 합집합을 나타낸다.
intersect(x,y) :: x와 y의 교집합을 나타낸다.
setdiff(x,y) :: x와 y의 차집합을 나타낸다(집합x - 집합y)
setequal(x,y) :: x와 y가 같은 집합인지 나타낸다.
is.element(k,x) :: k가 집합 x에 존재하는 원소인지 나타낸다.
여기서는 any와 all을 볼 수 있다.
any(논리) :: 벡터에 논리에 해당하는 값이 하나라도 존재하나?
all(논리) :: 벡터에 모든 값이 논리에 해당하나?
'Basic > R' 카테고리의 다른 글
R언어 Matrix, Array, Data frame (0) | 2018.04.05 |
---|---|
Data Types, Lists, Attribute, name 함수 (0) | 2018.04.03 |
R언어 list, attr, names, dim, factor, table (2) | 2018.03.23 |
R언어 변수 조회, 제거, 파일 쓰기, 데이터 관찰 (0) | 2018.03.13 |
R언어 기본 변수 선언, 연산, 패키지(라이브러리) (0) | 2018.03.13 |