[R][Tutorial] 데이터프레임 추가정리
데이터프레임에 관해 다루는 경우가 많아서 추가적으로 정리한다.
Dataframe
데이터프레임은 matrix와 달리 여러 자료형을 담을수 있는 데이터 구조이다.
생성은 다음과 같다.
data.frame(df, stringsAsFactors = TRUE)
이때 stringAsFactors는 문자열을 factor로 자동으로 변환하는것을 의미한다.
factor는 앞서 살핀것처럼 범주형을 처리하기 위한 변수이다.
# Create a, b, c, d variables
a <- c(10,20,30,40)
b <- c('book', 'pen', 'textbook', 'pencil_case')
c <- c(TRUE,FALSE,TRUE,FALSE)
d <- c(2.5, 8, 10, 7)
# Join the variables to create a data frame
df <- data.frame(a,b,c,d)
df
위와 같이 데이터프레임을 생성한다면(벡터를 합하면), 각 벡터들은 열벡터로 행렬에서 구성된다. 즉
## a b c d
## 1 1 book TRUE 2.5
## 2 2 pen TRUE 8.0
## 3 3 textbook TRUE 10.0
## 4 4 pencil_case FALSE 7.0
위의 결과가 나온다.
이때 만일 각 열의 이름을 붙이고 싶다면, names를 이용하자. names(df) = c(열이름1, 열이름2, ..)로 사용하면 된다.
str(): 구조 알아보기
은근 많이 쓴다. str()을 이용하면 데이터프레임의 구조를 알려준다.
str(df)
## 'data.frame': 4 obs. of 4 variables:
## $ ID : num 10 20 30 40
## $ items: Factor w/ 4 levels "book","pen","pencil_case",..: 1 2 4 3
## $ store: logi TRUE FALSE TRUE FALSE
## $ price: num 2.5 8 10 7
만일 데이터프레임 안에 또다른 벡터안에 벡터식의 복잡한 구조일 때 보기 좋다.
df[행:열]
데이터 프레임은 위와 같이 두가지 행, 열로 구성되며 그 순서는 다음과 같다. 이때 1부터 시작한다는 것에 유의하자.
또한 숫자 대신 이름을 직접 지정해서 사용도 가능하다.
$
$를 통해서 데이터프레임의 차원..? 어쨌든 요소를 하나씩 추가 선택, 지정 가능하다.
예를들어 우리가 열을 하나 추가하고 싶을 때는
# Create a new vector
quantity <- c(10, 35, 40, 5)
# Add `quantity` to the `df` data frame
df$quantity <- quantity
df
위 코드처럼 쓸 수 있고,
반대로 quanaity의 값을 보고 싶을때는
df$quntatiy
로 작성하면 된다.
subset()
데이터프레임의 특정 조건을 지정하여 조건문을 만족하는 부분집합을 정의할 수 있다.
subset(df, subset = a > 5)
order()
데이터 분석에서 데이터 세트의 특정 변수에 따라 데이터를 sorting하기 위해 사용하는 sort()역할을 R에서 하는 함수.
data_frame[order(df$c, decreasing = FALSE, na.last = TRUE),]
이때 각 인자 중 x는 데이터프레임의 특정열, 즉 기준이 될 열을, deacrieasing은 큰값부터 정렬하는 것을, na.last는 na값을 정렬 순서의 마지막으로 하는 옵션이다.