공부잡동사니

자료 구조 (벡터,리스트)논리 연산자 본문

빅데이터 분석/R프로그래밍

자료 구조 (벡터,리스트)논리 연산자

공부잡상인 2025. 4. 5. 14:10

# DB의 NULL : 아직 정의되지 않은 값

# R에서의 NA와 NULL
# - NA   : 잘못 들어온 값, 물리적 위치를 갖음
# - NULL : 정해지지 않은 값, 물리적 위치를 갖지 않음

 

Cat 함수 쓴값 그대로 나열해 주는 함수 
cat(..., 
    file= , )

# [ R에서의 자료구조 ]
# 벡터
# - 1차원
# - 여러개 값을 동시에 담거나 전달하기 위해 사용
# - 하나의 데이터 타입만 허용
# - 데이터프레임(테이블)의 컬럼의 구조이기도 함

# 2. 확장
c(v1, 4)
append(x,                   # 벡터
       values = ,           # 추가 값
       after = length(x))   # 위치, 생략시 맨 끝에 추가
append(v1,4)
append(v1,4,after=1)

# 3. 산술연산
v1 <- c(1,2,3)
v2 <- c(10,20,30)
v3 <- c(10,20,30,40)

v1 + 1   # 벡터와 숫자 산술연산 가능
v1 + v2  # 동일한 크기의 벡터는 같은 위치 원소끼리 연산
v1 + v3  # 서로 다른 크기의 벡터의 연산은 작은 크기의 벡터가반복되면서 연산됌

 

# 4. 색인(indexing)  *****
# 1) 정수색인
v_sal <- c(800,900,1000,1100,1200)
v_sal[1]
v_sal[1,3]     # 첫번째 행의 3번째 컬럼만 선택(2차원의 색인)
v_sal[c(1,3)]  # 1,3번째 원소 추출

# 2) 이름색인 

#이름부여
names(v_sal) <- c('a','b','c','d','e') ; v_sal 
v_sal[c('a','d')]

# 3) 슬라이스 색인
v_sal[c(1,2,3)]
v_sal[1:3]
v_sal[2:5]

# 4) 조건 색인(boolean indexing)
v_sal[v_sal >= 1000]
v_sal[c(F,F,T,T,T)]

# 논리 연산자
# 1) and
(v_sal > 1000) & (v_sal < 2000)
v_sal[(v_sal > 1000) & (v_sal < 2000)]

 

# 2) or
(v_sal <= 1000) | (v_sal >= 2000)
v_sal[(v_sal <= 1000) | (v_sal >= 2000)]

# 3) not
(v_sal > 1000)
!(v_sal > 1000)


v_sal == 1000 
v_sal != 1000 
!(v_sal == 1000) 

# 포함 연산자
v_sal[(v_sal == 800) | (v_sal == 1000)]
v_sal[v_sal %in% c(800, 1000)]

# [ 참고 : R과 파이썬의 자료구조 비교 ]
#   R             python 
# 벡터            리스트
# 리스트*         딕셔너리*
# 행렬             행렬
# 배열             배열
# 데이터프레임*  데이터프레임*

 

# 리스트 
# - 1차원
# - key 구조(데이터를 빠르게 검색/저장할 수 있도록 만든 자료구조)
# - 서로 다른 데이터 타입 허용