안녕하세요 구도입니다.


자세한 설명은 각 코드별로 #처리 후 설명 첨삭하였으니 이를 참고해주시면 감사하겠습니다.


코드만 보고 이해하시지 마시고 프로그램 설치 후 직접 해보시면서 이해하시면 더 빠르실겁니다!


*프로그램은 'R x64 3.5.1' 을 사용하였습니다.



#벡터화02

x <- c(1,2,3,4,5)

x[2]        # 2번째 원소


x[c(1,3,5)]  #2개 이상의 원소를 지정할 때는 c() 함수사용. 1,3,5번째 원소


x[-c(2,4)]   # 2,4번째 원소 제외한 나머지 원소


x[x>2]    # 원소의 값이 2보다 큰 값들만 출력


x[x>=2 & x<=4]      # 원소의 값이 2 이상이고 4 이하인 값들만 출력


x[2] <- 20       # 2번째 원소의 값을 20으로 수정

x


x[c(3,4)] <- 15   # 3,4번째 원소들의 값을 모두 15로 수정

x


x[x<=15] <- 10   # 15 이하인 원소 값들을 모두 10으로 수정

x


x <- seq(1:10)

sum(x)

mean(x)

var(x)

sd(x)

sqrt(x)

length(x)


x <- c(1,2,-3)

abs(x)



X <- c(1,2,3,NA,4)

Y <- c(5,6,NULL,7,8,9)

Z <- c(1/0, -1/0, 0/0, 4,5)

is.na(X)  # 4번째 NA값은 TRUE로 출력

is.na(Y)  # NULL은 애초에 값 자체가 아니기에 데이터 구성요소로서 들어가지 않음

is.na(Z)  # is.na()함수는 NaN도 TRUE로 인식

is.infinite(Z)  # Inf와 -Inf가 TRUE로 출력



#리스트 함수

x <- list("홍길동", "2016001", 20, c("IT융합", "데이터 관리"))  # '홍길동'을 표현하는 리스트: 객체들의 값만 있는 경우

x


#case 1

y <- list("성명"="홍길동", "학번"="2016001", "나이"=20, "수강과목"=c("IT융합", "데이터 관리"))  # 각 원소 값에 이름이 주어짐. '성명' 원소는 '홍길동' 값 가짐

y


#case 2

y <- list(성명="홍길동", 학번="2016001", 나이=20, 수강과목=c("IT융합", "데이터 관리"))  

y


y["성명"]  # 리스트 내의 '성명' 객체(원소명과 원소 값) 출력. y[1]과 동일

y[["성명"]] #리스트 내의 '성명' 객체의 값 출력

y$성명 #y[["성명"]]과 동일한 결과



#array 함수

x <- array(1:3, dim=c(3))       # 1~3까지의 정수를 1행 3열의 1차원으로 표시. x <- seq(1:3)와 동일한 결과

x


x <- array(1:6, dim=c(2,3))       # 1~6까지의 정수를 2행 3열의 2차원으로 표시. 열 단위로 값을 우선 배치

x


x <- array(c(2,4,6,8,10,12), dim=c(2,3))   # 6개의 원소로 이루어진 벡터를 2행 3열의 2차원 배열로 표시

x


x[1,3]  # 1행 3열의 값


x[,3]   # 3열의 모든 값

 

x[,-3]   # 3열을 제외한 모든 열의 값


x[1,2] <- 20    # 1행 2열의 값을 20으로 수정

x



#리스트 + 배열 함수

names <- list(c("1행", "2행"), c("1열", "2열", "3열"))

x <- array(c(2,4,6,8,10,12), dim=c(2,3), dimnames=names)   # names 객체를 행과 열 이름으로 설정

x


x <- array(1:24, dim=c(2,3,4))   # 1~24의 정수를 3차원 배열로 생성. 2: 행의 크기(1차원 방향), 3: 열의 크기(2차원 방향), 4: 행렬 반복횟수(3차원 방향)

x


오늘도 글 읽어주셔서 감사합니다.



+ Recent posts