lab1
# 데이터 구조의 특징
# 구분 데이터 종류가 한가지 데이터 종류가 여러가지
# 1차원 벡터 리스트
# 2차원 행렬 데이터 프레임
# n차원 배열
# 행렬
# 1~20까지 숫자 값으로 5행 4열을 갖는 항렬을 만들어 보자
# 왼쪽과 위쪽의 [,]는 {rows}[col]의 좌표를 나타냄.
# 데이터 접근 기본순서는 [행,열]인 것을 기억함.
x <- matrix(1:20,5.4)
x
class(x)
# 행렬구조에서 데이터 선택하기
x[1,2] # 첫번째 행, 두번째 열 위치선택택
# 2~4행을 선택, 모든 열을 선택
x[2:4,]
# 2~4행을 선택하고 두번째 열을 선택
x[2:4,2]
# 2행만 빼고 모두 선택 , 모든 열을 선택
x[-2,]
# 행렬을 선택하면 기본적으로 왼쪽부터 위에서 아래로 데이터 값을 열에 채움.
# 첫행 왼쪽부터 오른쪽으로 행을 먼저 채우려면, 열개수를 지정한후, byrow = TRUE 옵션을 사용함
matrix(1:20,5,4,byrow = TRUE)
lab2
# 데이터 프레임.
# : 2차원 구조인 행렬과 비슷하지만, 각 열의 자료형을 다른 종류로 가질수
# 있다는 점이 다름.
# 엑셀(Exxel)의 데이터시트를 생각하면 됨.
# 각 열에는 데이터 값을 대표하는 열 이름이 정해지고, 각 행에는 매번 관측해서
# 얻은 실제 데이터 값이 존해함.
# 데이터 프레임은 R에서 가장 많이 쓰는 데이터 구조이며, 열이름이 있음.
# data.frame(열이름 = c(데이터1,데이터2,....), 열이름 = c(데이터1,데이터2....), .... )
# 행과열을 각각 네 개씩 갖는 데이터 프레임.
df <- data.frame(name =c("kim","lee","choi","park"), age = c(32,22,18,39), height=c(170,175,168,180), weight=c(63,66,56,70))
df
class(df)
# 행과 열을 네 개씩 갖는 데이터프레임 만들어짐.
# 행왼쪽에는 1~4의 행번호가 함깨 출력
# name변수에 데이터값을 할당
name <- c("kim","lee","choi","park")
age <- c(32,22,18,39)
weight <- c(63,66,56,70)
height <- c(170,175,168,180)
df <- data.frame(name,age,weight,height)
df
# 데이터 프레임 행은 가로로 나열된 데이터 값의 집합, 로우(row), 관측 값(observation), 케이스(case)라고도 함.
# 데이터 프레임 열은 컬럼 혹은 변수(variable)라고도 함.
# 데이터 프레임구조에서 데이터 선택하기
# 1)행과 열의 위치로 선택(좌표사용)
# 2)행과 열의 이름으로 선택(이름사용)
df[1,] #열이 지정되지 않았다면 전체를 선택한다는 의미이다.
# 세번째 행을 선택
df[3,]
# 첫번쨰와 세번쨰 행을 선택
df[c(1,3),]
# 1~3행을 선택
df[1:3, ]
# 두번째 열을 선택
df[,2]
# 두번째 열을 선택, 세로를 출력 drop원래데이터 형태대로 출력하고 싶을때
df[,2,drop = FALSE]
# 첫번째와 세번째 행, 첫번째와 두번째 열을 선택
df[c(1,3),c(1,2)]
df[2,2]
# rownames 행이름을 붙이는 함수.
rownames(df) <- c("one", "two","three", "four")
df
df[c("one", "two"),]
df[,"age", drop=FALSE]
df[c("one", "three"),c("name", "age")]
# '데이터프레임$열이름'
df$height
lab3
# 배열(array) : 행렬과 유사하지만, 자원(dimension)속성을 가진 데이터 구조.
# array(데이터, c(행개수, 열개수, 차원))
# 1부터 2까지 구성된 행 다섯개, 열 네게, 차원 두개를 갖는 3차원 배열을 만들어 보자.
x <- array(1:2, c(5, 4, 2))
x
class(x)
# 배열 구조에서 데이터 선택하기
# x[행, 열, 차원]
#1행,2열, 2차원 위치값을 선택하라
x[1, 2, 2]
# 리스트
# : 숫자나 문자처럼 여러 종류의 자료형을 가질수 있으며
# 벡터뿐만아니라 행렬, 배열등 데이터 구조도 담을 수 있음.
x <- list(c(1:5),c(1:50))
x
# key, value로 만들기
x <- list(flower ="rose",color=c("red","white"))
x
x[1] #인덱스 1을 선택
x[[1]] #인덱스 1의 데이터 값을 선택