[R코딩] 리스트 인덱싱 할때, 요소 자체의 자료형으로 출력
리스트를 인덱싱할 때, 요소를 리스트 형태로 출력할 수도 있고 요소 자체의 자료형으로 출력할 수도 있습니다. 먼저 리스트를 하나 정의합시다. > li=list(v=c(1,2,3),m=matrix(1:4,2),df=data.frame(a=c(1,2,3),b=c(4,5,6))) > li $v [1] 1 2 3 $m [,1] [,2] [1,] 1 3 [2,] 2 4 $df a b 1 1 4 2 2 5 3 3 6 리스트 형태로 인덱싱 대괄호를 한겹만 사용합니다. > li[1] $v [1] 1 2 3 > li[2] $m [,1] [,2] [1,] 1 3 [2,] 2 4 > li[3] $df a b 1 1 4 2 2 5 3 3 6 자료형을 확인해봅시다. > class(li[1]) [1] "list" > class(..
2020. 12. 16.
[R 코딩] 리스트를 데이터프레임으로 만드는 stack 함수
stack 함수를 이용하면 리스트를 데이터프레임으로 만들 수 있습니다. 왜 리스트를 데이터프레임으로 바꾸는지, 어떻게 바뀌는지는 예제를 통해 이해할 수 있을것입니다. 단, 벡터나 factor가 들어있는 리스트만 가능합니다. 예를들어 한국,미국,영국 세 나라에서 다섯사람씩 모였고 이들의 나이를 리스트레 저장했다고 합시다. > li=list(kor=c(23,42,66,36,72),us=c(11,16,25,66,73),uk=c(16,5,34,25,12)) > li $kor [1] 23 42 66 36 72 $us [1] 11 16 25 66 73 $uk [1] 16 5 34 25 12 위 리스트에 stack 함수를 적용한 결과는 아래와 같습니다. > stack(li) values ind 1 23 kor 2 4..
2020. 12. 16.
[R 코딩] 원소를 역순으로 배열하는 함수 (rev)
rev 함수는 벡터 원소의 순서를 역순으로 만들어줍니다. > v=c(1,2,3,4,5,6) > rev(v) [1] 6 5 4 3 2 1 행렬에도 적용가능한데, 행렬을 정의하는데 이용한 벡터를 역순으로 나열하고 벡터를 출력합니다. > m=matrix(1:6,2) > m [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 > rev(m) [1] 6 5 4 3 2 1
2020. 12. 15.
[R 코딩] list 를 벡터로 만들기 (unlist 함수)
벡터, 행렬, 데이터프레임을 하나씩 정의하여 list에 넣어봅시다. > v=c(1,2,3) > m=matrix(1:4,2) > df=data.frame(a=c(10,20,30),b=c(40,50,60)) 리스트에 넣은 결과입니다. > ml=list(v,m,df) > ml [[1]] [1] 1 2 3 [[2]] [,1] [,2] [1,] 1 3 [2,] 2 4 [[3]] a b 1 10 40 2 20 50 3 30 60 리스트에 unlist 함수를 적용해봅시다. > unlist(ml) a1 a2 a3 b1 b2 b3 1 2 3 1 2 3 4 10 20 30 40 50 60 벡터로 변한것을 알 수 있습니다.
2020. 12. 15.
[R 코딩] 벡터의 원소 반복 규칙
원소 반복규칙의 예시는 아래와 같습니다. > c(1,2,3)+c(1,2,3,4,5,6) [1] 2 4 6 5 7 9 길이가 다르지만 길이가 짧은 벡터가 반복되며 모자란 부분을 채웁니다. cbind 함수에도 적용됩니다. > cbind(1:2,1:5) [,1] [,2] [1,] 1 1 [2,] 2 2 [3,] 1 3 [4,] 2 4 [5,] 1 5 Warning message: In cbind(1:2, 1:5) : number of rows of result is not a multiple of vector length (arg 1)
2020. 12. 15.
[R 코딩] 벡터 중간에 데이터 삽입
벡터 중간에 데이터를 삽입할 때는 append 함수를 사용합니다. 아래와 같은 형식입니다. append(벡터,삽입할데이터,after=n) 아래와 같은 벡터가 있다고 합시다. v1=c(10,20,30,40,50) 이 벡터의 세번째와 네번째 원소 사이에 c(1,2,3)을 삽입해봅시다. > append(v1,c(1,2,3),after=3) [1] 10 20 30 1 2 3 40 50
2020. 12. 15.
[R 코딩] 벡터 여러개 합쳐서 벡터 만들기
아래와 같은 두 벡터가 있다고 합시다. > v1=c(1,2,3) > v2=c(4,5,6) 하나로 합쳐봅시다. > c(v1,v2) [1] 1 2 3 4 5 6 숫자형과 문자형이 함께 있는 경우 문자형으로 통일됩니다. > v1=c(1,2,3) > v2=c("a","b","c") > c(v1,v2) [1] "1" "2" "3" "a" "b" "c"
2020. 12. 15.
[R코딩] array 함수 없이 벡터로 배열 만드는 방법
array 함수는 보통 아래와 같이 만듭니다. > ar=array(1:4,dim=c(3,3,2)) > ar , , 1 [,1] [,2] [,3] [1,] 1 4 3 [2,] 2 1 4 [3,] 3 2 1 , , 2 [,1] [,2] [,3] [1,] 2 1 4 [2,] 3 2 1 [3,] 4 3 2 벡터에 dim 함수를 적용해도 array가 생성됩니다. dim이 2차원이면 matrix가 생성됩니다. > v1=1:18 > dim(v1)=c(3,3,2) > v1 , , 1 [,1] [,2] [,3] [1,] 1 4 7 [2,] 2 5 8 [3,] 3 6 9 , , 2 [,1] [,2] [,3] [1,] 10 13 16 [2,] 11 14 17 [3,] 12 15 18 단, array 함수에서 가능했던 반복규..
2020. 12. 15.
[R 코딩] 배열,행렬 생성 시 사용 가능한 반복규칙
배열에서는 아래와 같은 생성이 가능합니다. > ar=array(c(1,2,3,4),dim=c(3,5)) > ar [,1] [,2] [,3] [,4] [,5] [1,] 1 4 3 2 1 [2,] 2 1 4 3 2 [3,] 3 2 1 4 3 전체 차원의 원소수보다 적게 입력해도, 행방향으로 반복하여 입력합니다. 행렬에서도 가능합니다. > m=matrix(c(1,2,3,4),3,5) Warning message: In matrix(c(1, 2, 3, 4), 3, 5) : data length [4] is not a sub-multiple or multiple of the number of rows [3] > m [,1] [,2] [,3] [,4] [,5] [1,] 1 4 3 2 1 [2,] 2 1 4 3 2 ..
2020. 12. 15.
[R 코딩] matrix 함수 없이 벡터에서 행렬만들기
보통 행렬은 아래와 같이 만듭니다. > m1=matrix(c(1,2,3,4),2) > m1 [,1] [,2] [1,] 1 3 [2,] 2 4 위 방법 말고 벡터를 정의한 뒤 dim 함수를 이용하여 만들 수도 있습니다. > v1=c(1,2,3,4) > dim(v1)=c(2,2) > v1 [,1] [,2] [1,] 1 3 [2,] 2 4
2020. 12. 15.
[R코딩] mode,class,typeof 함수의 차이
객체들에 적용한 결과입니다. class 함수가 가장 디테일하게 구분해줍니다. 객체 예시 mode 함수 적용 class 함수 적용 typeof 함수 숫자 3 numeric numeric double 문자열 "hi" character character character 숫자벡터 c(1,2,3) numeric numeric double 문자열벡터 c("hi","hello") character character character Factor factor(c("A","A","B") numeric factor integer 리스트 list(c(1,2),c("A)) list list list 데이터프레임 data.frame(c(1,2)) list data.frame list 행렬 matrix(c(12,3,4),2,2..
2020. 12. 15.
[R코딩] 여러 값을 갖는 시계열 생성 (다변량 시계열)
날짜별로 복수의 값을 갖는 시계열을 생성하는 방법입니다. 행렬을 이용하여 정의하면 됩니다. 먼저 행렬을 하나 정의합시다. > mat=matrix(rnorm(30),10,3) > mat [,1] [,2] [,3] [1,] -0.176291735 0.3323575 -0.6542597 [2,] -0.928060332 -0.5374235 0.7382477 [3,] -0.003182761 1.7133234 0.9095766 [4,] 1.459855751 -1.0273686 1.7733747 [5,] 0.057111027 -2.1042541 0.7851097 [6,] -0.411653367 0.5216750 1.4261827 [7,] -0.381249441 -1.0180405 -1.0944751 [8,] -0.18..
2020. 12. 13.