[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 코딩] 평면분할표 ftable (3차원 이상의 table을 계층화)
ftable 함수는 table을 계층화해주는 함수입니다. 3차원 이상의 table부터 의미가 있습니다. 예시를 통해 이해해봅시다. 먼저 3차원 table을 하나 정의해봅시다. 타이타닉호에 탑승한 5사람의 대한 데이터입니다. class 는 탑승객 좌석등급, age는 나이입니다. > class=c("1st","1st","2nd","3rd","Crew") > gender=c("M","M","M","F","F") > age=c("성인","성인","아이","아이","성인") > tab2=table(class,gender,age) > tab2 , , age = 성인 gender class F M 1st 0 2 2nd 0 0 3rd 0 0 Crew 1 0 , , age = 아이 gender class F M 1st ..
2020. 12. 12.
[R 코딩] 3차원 table
우리에게 익숙한 table 은 2차원 table 입니다. 예를 들면 아래와 같습니다. class 는 승객 등급, gender는 성별입니다. 타이타닉호에 탑승한 다섯 사람에 대한 정보입니다. > class=c("1st","1st","2nd","3rd","Crew") > gender=c("M","M","M","F","F") > tab1=table(class,gender) > tab1 gender class F M 1st 0 2 2nd 0 1 3rd 1 0 Crew 1 0 만약 한가지 정보를 더 추가하면 어떻게 될까요?? 나이 정보를 추가하고 테이블을 만들어봅시다. > class=c("1st","1st","2nd","3rd","Crew") > gender=c("M","M","M","F","F") > age=c..
2020. 12. 12.
[R] 테이블에서 열 또는 행 위주로 정리(주변표)
먼저 테이블을 하나 정의합시다. 다섯 사람의 성별과 혈액형 데이터입니다. > gender=c("M","M","F","F","M") > btype=c("A","B","B","A","B") > mt=table(gender,btype) > mt btype gender A B F 1 1 M 1 2 행 위주로 정리해봅시다. margin.table( ) 함수에서 margin 옵션을 1로 입력합니다. > margin.table(mt,1) gender F M 2 3 이번에는 열 위주로 정리해봅시다. > margin.table(mt,2) btype A B 2 3
2020. 12. 12.
[R] 테이블을 비율로 변환
먼저 테이블을 하나 정의합시다. 다섯 사람의 성별과 혈액형 데이터입니다. > gender=c("M","M","F","F","M") > btype=c("A","B","B","A","B") > mt=table(gender,btype) > mt btype gender A B F 1 1 M 1 2 비율로 바꿔봅시다. 함수는 prob.table() 입니다. 전체 합이 1이 되도록 비율로 바꾼 것입니다. > prop.table(mt) btype gender A B F 0.2 0.2 M 0.2 0.4 이번에는 옵션을 추가해봅시다. margin 옵션입니다. margin=1 로 설정할 경우 각 행의 합이 1이 되도록 비율로 바꾸는 것입니다. > prop.table(mt,margin=1) btype gender A B F..
2020. 12. 12.
R 데이터프레임 열 방향으로 합치기
R 데이터프레임 열 방향으로 합치기 열 방향을 좌->우 를 의미합니다. 데이터프레임을 행방향으로 합칠 때는 cbind 함수를 사용합니다. 행방향결합을 하기 위한 조건은 데이터프레임의 행의 길이가 같아야한다는 것입니다. 데이터프레임 두개를 정의해봅시다. > data1=data.frame(name=c("KLT","LML","PSK"),age=c(14,16,23))> data1 name age1 KLT 142 LML 163 PSK 23> data2=data.frame(sex=c("F","F","M"),married=c("N","Y","Y"))> data2 sex married1 F N2 F Y3 M Y cbind 함수를 이용하여 하나로 합쳐봅시다. > cbind(data1,data2) name age sex ..
2020. 11. 27.
[R] 분할표를 자동으로 만들어주는 table 함수
[R] 분할표를 자동으로 만들어주는 table 함수 table 함수는 범주형 자료의 분할표를 만들 때 사용됩니다. 예를들어 아래 벡터가 있다고 합시다. v=c("F","F","M","M","M") table 함수를 적용하면 아래와 같습니다. > table(v) v F M 2 3 위 경우는 변수가하나인 경우입니다. 변수가 2개인 경우도 살펴봅시다. v1=c("F","F","M","M","M") v2=c("A","B","C","A","B") d=data.frame(v1,v2) > table(d) v2 v1 A B C F 1 1 0 M 1 1 1
2020. 8. 31.
R 데이터프레임 인덱싱을 파라미터로 접근하기
R 데이터프레임 인덱싱을 파라미터로 접근하기 데이터프레임의 인덱싱 방법은 크게 두가지가 있습니다. $를 사용하는 방법과 [ ]을 사용하는 방법입니다. 물론 함께 사용할 수도 있습니다. 둘의 차이를 간단히 알아봅시다. 먼저 데이터프레임을 하나 만들어봅시다. > myd=data.frame(A=c(90,84,66,35),B=c(96,46,73,62),C=c(77,57,46,36)) > myd A B C 1 90 96 77 2 84 46 57 3 66 73 46 4 35 62 36 한 반의 학생이 4명인 A,B,C반의 수학점수입니다. $을 이용하여 A반에 접근해봅시다. > myd_A=myd$A > typeof(myd_A) [1] "double" 벡터가 반환됩니다. 이번에는 [ ] 을 이용하여 접근해봅시다. > ..
2020. 4. 28.
R 데이터프레임 행이름 리셋하는 법
R 데이터프레임 행이름 리셋하는 법 먼저 데이터프레임을 하나 정의합시다. a=1:5b=11:15c=101:105 mydata=data.frame(a,b,c) 정의한 데이터프레임은 아래와 같습니다. > mydata a b c1 1 11 1012 2 12 1023 3 13 1034 4 14 1045 5 15 105 이 데이터프레임의 1,3,5행을 mydata2라는 데이터프레임에 입력하겠습니다. mydata2=mydata[c(1,3,5),] 결과는 아래와 같습니다. 행 이름도 1,3,5가 되어 있는 것을 알 수 있습니다. > mydata2 a b c1 1 11 1013 3 13 1035 5 15 105 행 이름을 1,2,3으로 리셋하려면, 아래와 같은 코드를 입력하면 됩니다. rownames(mydata2)=..
2020. 4. 6.
R 행렬 인덱싱, 원소 추가/수정/제거
R 행렬 인덱싱, 원소 추가/수정/제거 1. 행렬의 인덱싱 행렬을 하나 정의합시다. > m1=matrix(c(1,2,3,4,5,6),nrow=2)> m1 [,1] [,2] [,3][1,] 1 3 5[2,] 2 4 6 인덱싱 원리는 벡터와 동일한데, 방향이 하나 추가된 것입니다. 행방향 index와 열방향 index가 있습니다. 아래와 같이 입력합니다. 행렬이름[행방향 index, 열방향 index] 1) 단일 원소 위 행렬의 1행2열 원소에 접근해봅시다. > m1[1,1][1] 1 1행 2열의 원소에 접근해봅시다. > m1[1,2][1] 3 2) 여러원소 벡터형태로 인덱스를 입력하면 됩니다. 1행의 2,3열의 원소에 접근해봅시다. > m1[1,c(2,3)][1] 3 5 아래와 같이 입력해도 됩니다. > ..
2020. 1. 30.
R 벡터의 인덱싱, 원소 추가/수정/제거
R 벡터의 인덱싱, 원소 추가/수정/제거 1. 인덱싱 벡터를 하나 정의합시다. > a=c(1,2,3,4,5)> a[1] 1 2 3 4 5 1) 단일원소 원소에 접근하는 방법은 대괄호 [ ] 를 이용하는 것입니다. 예를 들어 첫번째 원소에 접근한다면 아래와 같이 입력하면 됩니다. > a[1][1] 1 여기에 입력된 1을 index라고 합니다. 2) 범위 index를 구간으로 입력할 수도 있습니다. 1부터 3까지의 원소에 접근해봅시다. > a[1:3][1] 1 2 3 1:3이 마치 새로운 기호처럼 보이는데, c(1,2,3)인 벡터와 같습니다. 아래와 같이 입력해도 됩니다. > a[c(1,2,3)][1] 1 2 3 위 원리를 이용하여 1,3,5번째 원소에 접근해봅시다. > a[c(1,3,5)][1] 1 3 5..
2020. 1. 29.
R에서 여러 요인(factor)들이 결합된 요인을 만들어주는 interaction 함수
R에서 여러 요인(factor)들이 결합된 요인을 만들어주는 interaction 함수 다섯 사람이 있다고 해봅시다. 다섯 사람의 성별과 혈액형은 아래와 같습니다. gender=factor(c('M','M','F','M','F'),levels=c('M','F'))b_type=factor(c('A','O','AB','B','A'),levels=c('A','O','AB','B')) interaction 함수를 적용해보겠습니다. > interaction(gender,b_type)[1] M.A M.O F.AB M.B F.A Levels: F.A M.A F.AB M.AB F.B M.B F.O M.O 위와 같이 두 요인이 결합된 요인을 반환해줍니다. level을 보면 두 요인의 level 조합으로 나올 수 있는 모..
2020. 1. 18.
R에서 요인(factor)을 쉽게 정의할 수 있는 꿀함수 gl()
R에서 요인(factor)을 쉽게 정의할 수 있는 꿀함수 gl() gl함수를 이용하면 요인을 간편하게 정의할 수 있습니다. 아래와 같이 사용합니다. gl(요인 수, 요인 별 반복 수, 전체 수, 요인 이름) 예를들어서 남자(M)와 여자(F)로 구성된 요인을 만들고 싶다고 해봅시다. M,M,M,F,F,F 를 만들고 싶다면, gl함수를 아래와 같이 사용하면 됩니다. > gl(2,3,labels=c("M","F"))[1] M M M F F FLevels: M F 이번에는 전체 수도 입력해봅시다. 10을 입력하면, MMMFFF 가 3개씩 입력되다가 10개가 되면 입력을 멈춥니다. > gl(2,3,10,labels=c("M","F")) [1] M M M F F F M M M FLevels: M F ordered ..
2020. 1. 18.
R 데이터프레임 열별 누락 데이터 개수 확인
R 데이터프레임 열별 누락 데이터 개수 확인 #데이터 정의 data1=c(1,2,3,NA,5) data2=c(NA,2,3,NA,5) data3=c(NA,NA,NA,4,5) #데이터 프레임 정의 my_df=data.frame(data1,data2,data3) > my_df data1 data2 data3 1 1 NA NA 2 2 2 NA 3 3 3 NA 4 NA NA 4 5 5 5 5 #apply 함수를 이용하여 누락데이터 수 계산 #sum 함수 안에 다시 is.na 함수를 적용한 것이라, 아래와 같은 형식 사용 apply(my_df,2,function(x) sum(is.na(x))) > apply(my_df,2,function(x) sum(is.na(x))) data1 data2 data3 1 2 3
2019. 12. 12.