Programming/R
[R기초] Data object : vector 벡터 자료형
aram
2023. 7. 24. 12:15
- 벡터에 저장하기 : c() | 시작값:마지막값 | append() | seq() | rep()
# a변수에 1~5까지 값 저장
a <- c(1,2,3,4,5) #1 2 3 4 5
a <- 1:5
# a ~ f 문자를 b 변수에 저장
b <- "a":"f" #Error
b <- c("a", "b", "c", "d", "e", "f") #"a" "b" "c" "d" "e" "f"
## append( 벡터, 추가값, 자리수 )
v1 <- c(1,10,6,4,NA,9)
vec1 <- append(vec1, 10, after=3) #1 10 6 10 4 NA 9
vec1 <- append(vec1, c(11, 12),after=1) #1 11 12 10 6 10 4 NA 9
## seq( 시작, 끝, 건너뛰기 )
v7 <- seq(1, 10, 2) # 1 3 5 7 9
## rep( 범위, each=반복횟수 )
> v8 <- rep(1:3, 2) #1 2 3 1 2 3 : 1~3 사이 값을 2번 벡터로 저장
> v9 <- rep(1:3, each=2) #1 1 2 2 3 3 : 요소를 각각 2번씩 저장
## 날짜를 벡터로 저장하기
## seq(from=시작날짜, to=마지막날짜, by='day'|'month'|'year')
seq(from=as.Date('2023-07-30'), to=as.Date('2023-08-02'), by=1)
#"2023-07-30" "2023-07-31" "2023-08-01" "2023-08-02"
seq(from=as.Date('2023-10-01'), to=as.Date('2023-12-31'), by="month")
#"2023-10-01" "2023-11-01" "2023-12-01"
seq(from=as.Date('2000-01-01'), to=as.Date('2004-12-31'), by="year")
#"2000-01-01" "2001-01-01" "2002-01-01" "2003-01-01" "2004-01-01"
- 슬라이싱[ 1부터strat : last포함 ]
vec1 = c(1,2,3,4)
vec1[3] #3 해당번호 조회
vec1[-2] #1 3 4 해당 번호 제외 후 전체 조회
vec1[2:3] #2 3 2~3번째 조회
vec1[3] = 6
vec1[2] <- 10
vec1[6] <- 9
print(vec1) #1 10 6 4 NA
print(length(vec1)) #6
## NA : 값x. 자리수는 차지함
## NULL : 값, 자리수 모두 x
#초기화
vec1 <- nullfile() # "nul:"
length(vec1) # 1
- vector 연산 : union() setdiff() intersect()
v1 <- c(1,2,3)
v2 <- c(4,5,6)
v3 <- c('3','4','5')
v4 <- c(10,20,30,40,50)
v5 <- c(0,1,2,3,4)
##더하기
v1+v2 #5 7 9
v1+10 #11 12 13
v1 + 10 #11 12 13
c(1,2,3)+10 #11 12 13
c(1,2,3) + 10 #Error
v1 + v4 #11 22 33 41 52 Warning message: 자리수 맞춰야함
##합하기
union(v1,v2) # 1 2 3 4 5 6
v1+v3 #Error
union(v1,v3) # "1" "2" "3" "4" "5 자동형변환
## 빼기
v1 - v2 #-3 -3 -3
## 차집합
setdiff(v4, v1) #10 20 30 40 50
setdiff(v1, v4) #1 2 3
## 교집합
intersect(v1, v5) #1 2 3
mean(v4) #30 : 평균
sum(v4) #150 : 합계
- 벡터 길이 조회 : length() NROW()
v9 <- rep(1:3, each=2) #1 1 2 2 3 3
length(v9) # 6
NROW(v9) # 6
- 요소 이름 지정 : names() <- 이름벡터
names(v1) <- c("a", "b", "c")
print(v1)
# a b c
# 1 2 3
- 조건 검색
# 벡터데이터 조건
x = 1:10 #1 2 3 4 5 6 7 8 9 10
#5이상인 데이터 조회
x[x>=5] # 5 6 7 8 9 : TRUE인 값만 출력
x>=5
# FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE
# TRUE / FALSE로 출력
#x 데이터 중 짝수인 데이터만 출력
x[x%%2==0] # 2 4 6 8 10
* 내용참고&출처 : 태그의 수업을 복습 목적으로 정리한 내용입니다.
728x90