a <- 3
b <- 4.5
c <- a + b
print(c)
## [1] 7.5
one <- 100
two <- 75
three <- 80
four <- NA
변수에 값이 존재하지 않는지 확인해보자.
is.na(four)
## [1] TRUE
x <- NULL
is.null(x)
## [1] TRUE
is.null(1)
## [1] FALSE
is.na(x)
## Warning: is.na()는 유형이 'NULL'인 (리스트 또는 벡터)가 아닌 것에
## 적용되었습니다
## logical(0)
a <- "hello"
print(a)
## [1] "hello"
TRUE & TRUE
## [1] TRUE
TRUE | FALSE
## [1] TRUE
!FALSE
## [1] TRUE
T <- FALSE
TRUE <- FALSE
## Error: 대입에 유효하지 않은 (do_set) 좌변입니다
c(TRUE, TRUE) & c(TRUE, FALSE)
## [1] TRUE FALSE
c(TRUE, TRUE) && c(TRUE, FALSE)
## [1] TRUE
&은 각 원소간 계산을 한다.
&&은 벡터의 요소간 계산을 위함이 아니라 한개의 boolean 값끼리의 연산을 하기 위한 연산자이다.
sex <- factor("m", c("m", "f"))
sex
## [1] m
## Levels: m f
nlevels(sex)
## [1] 2
levels(sex)
## [1] "m" "f"
level의 값을 직접 수정해보자
levels(sex) <- c("male", "female")
sex
## [1] male
## Levels: male female
명목형 변수의 level을 순서형 변수로 만들수 있다.
ordered(c("a", "b", "c"))
## [1] a b c
## Levels: a < b < c
factor(c("a", "b", "c"), ordered = TRUE)
## [1] a b c
## Levels: a < b < c
나열하는 인자들은 한가지 유형의 스칼라 타입이어야 한다.
다른 타입의 데이터를 섞어서 저장하면 한가지 타입으로 자동변환된다.
x <- c(1, 2, 3, 4, 5)
x
## [1] 1 2 3 4 5
y <- c("1", 2, "3")
y
## [1] "1" "2" "3"
벡터는 중첩될 수 없다.벡터안에 벡터를 정의하면 단일차원의 벡터로 변경된다.
중첩된 구조는 리스트를 사용해야 한다.
c(1, 2, 3, c(1, 2, 3))
## [1] 1 2 3 1 2 3
숫자형 데이터의 경우, 여러 방법으로 벡터를 만들 수 있다.
x <- 1:10
x
## [1] 1 2 3 4 5 6 7 8 9 10
x <- seq(1, 10, 2)
x
## [1] 1 3 5 7 9
seq_along은 인자로 주어진 데이터의 “길이"만큼 1,2,…,N으로 구성된 벡터를 반환한다.
seq_along(c("a", "b", "c"))
## [1] 1 2 3
seq_along(3)
## [1] 1
seq_len(3)
## [1] 1 2 3
벡터의 각 셀에는 names()를 사용해 이름을 부여할 수 있다.
x <- c(1, 3, 4)
names(x) <- c("kim", "seo", "park")
x
## kim seo park
## 1 3 4
x <- c("a", "b", "c")
x[1]
## [1] "a"
음수의 인덱스를 사용하면 특정 요소만 제외할 수 있따.
x[-1]
## [1] "b" "c"
벡터의 여러 위치에 저장된 값을 가져오려면 벡터의 형식을 사용한다.
x[c(1, 2)]
## [1] "a" "b"
x[1:2]
## [1] "a" "b"
이름을 사용해서 접근 할 수도 있다.
x <- c(1, 3, 4)
names(x) <- c("kim", "seo", "park")
x["seo"]
## seo
## 3
x[c("kim", "seo")]
## kim seo
## 1 3
벡터의 길이는 length()또는 NROW()를 통해 알 수 있다.
nrow()는 행렬에서 사용하며, NROW()는 인자가 벡터인 경우 벡터를 n행 1열의 행렬로 취급한다.
length(x)
## [1] 3
nrow(x)
## NULL
NROW(x)
## [1] 3