R에서 다룰 수 있는 데이터 타입은 다양하지만 주로 사용하는 것은 데이터 프레임(Data Frame)
이다. 데이터 프레임은 엑셀의 시트와 같다. 행(row)
과 열(column)
이 존재하는 형태이다.
위 창은 스크립트 창이라고 한다. 코드를 입력한 후 Ctrl
+Enter
를 하면 콘솔 창에 해당 코드가 실행되고 결과가 나타난다.
iris 데이터 셋을 통해 실습을 해보자.
df <- iris
names(df)
# 열 이름 변경
names(df) <- c('sl', 'sw', 'pl', 'pw', 'sp')
# 결과
> names(df)
[1] "sl" "sw" "pl" "pw" "sp"
주의할 점은 Python에서는 0부터 시작하지만, R에서는 1부터 시작한다.
# 5번째 열 이름 변경
names(df)[5] <- 's'
> names(df)
[1] "sl" "sw" "pl" "pw" "s"
특정 데이터만 추출하기 위해서는 subset()
함수를 이용한다.
# 사용법
subset(data, condition)
# df에서 s가 versicolor인 대상만 추출
df_1 <- subset(df, s == 'versicolor')
# df에서 sl이 6보다 크고, s가 versicolor인 대상만 추출
df_2 <- subset(df, sl > 6 & s == 'versicolor')
# df에서 s가 setosa인 sl, sw, s열만 추출
df_3 <- subset(df, s == 'setosa', select=c(sl, sw, s))
# df에서 s열만 제외하고 추출
df_4 <- subset(df, select=-c(s))
연산자는 Python과 동일하게 사용된다. >, <, >=, <=, ==, !=, &, | 등등
# 벡터 생성
v <- c(1, 2, 3, 4, 5, 6, 7, 8, 9)
# 3x3 행렬 생성
m <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow=3)
# 데이터 프레임 생성
d <- data.frame(x=c(1, 2, 3), y=c(4, 5, 6), z=c('a', 'b', 'c'))
# 배열 생성
a <- array(1:18, dim=c(2, 3, 3))
# 리스트 생성
l <- list(name='Jon Snow', family=c('Stark', 'Targaryen'))
# 결과
> v
[1] 1 2 3 4 5 6 7 8 9
> m
[,1] [,2] [,3]
[1,] 1 4 7
[2,] 2 5 8
[3,] 3 6 9
> d
x y z
1 1 4 a
2 2 5 b
3 3 6 c
> a
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
, , 3
[,1] [,2] [,3]
[1,] 13 15 17
[2,] 14 16 18
> l
$name
[1] "Jon Snow"
$family
[1] "Stark" "Targaryen"