R 데이터 프레임: 생성, 추가, 선택 및 하위 집합 방법

데이터 프레임이란 무엇입니까?

A 데이터 프레임 길이가 같은 벡터의 목록입니다. 행렬에는 한 가지 유형의 데이터만 포함되는 반면, 데이터 프레임에는 다양한 데이터 유형(숫자, 문자, 요소 등)이 허용됩니다.

데이터 프레임을 만드는 방법

우리는 데이터 프레임을 만들 수 있습니다 R 변수 a,b,c,d를 data.frame() 함수에 전달합니다. R은 데이터프레임을 생성하고 name()을 사용하여 열 이름을 지정하고 변수 이름을 간단히 지정할 수 있습니다.

data.frame(df, stringsAsFactors = TRUE)

인수:

  • df: 데이터 프레임으로 변환할 행렬일 수도 있고 조인할 변수 모음일 수도 있습니다.
  • 문자열AsFactors: 기본적으로 문자열을 인수로 변환합니다.

동일한 길이의 XNUMX개 변수를 결합하여 첫 번째 데이터 세트에 대해 R에서 데이터프레임을 만들 수 있습니다.

# 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  10        book  TRUE   2.5
## 2  20         pen  FALSE  8.0
## 3  30    textbook  TRUE   10.0
## 4  40 pencil_case  FALSE  7.0

열 헤더의 이름이 변수와 동일한 것을 볼 수 있습니다. names() 함수를 사용하여 R의 열 이름을 변경할 수 있습니다. 아래의 R 생성 데이터 프레임 예제를 확인하세요.

# Name the data frame
names(df) <- c('ID', 'items', 'store', 'price')
df

출력:

##   ID       items store price
## 1 10        book  TRUE   2.5
## 2 20         pen FALSE   8.0
## 3 30    textbook  TRUE  10.0
## 4 40 pencil_case FALSE   7.0
# Print the structure
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

기본적으로 데이터 프레임은 문자열 변수를 요소로 반환합니다.

데이터 프레임 슬라이스

데이터 프레임의 값을 SLICE하는 것이 가능합니다. 데이터 프레임 이름 앞에 괄호로 반환할 행과 열을 선택합니다.

데이터 프레임은 행과 열로 구성됩니다(df[A, B]). A는 행을 나타내고 B는 열을 나타냅니다. 행 및/또는 열을 지정하여 조각화할 수 있습니다.

그림 1에서 왼쪽 부분은 행, 그리고 오른쪽 부분은 . 기호 :는 다음을 의미합니다. . 예를 들어 1:3은 1에서 값을 선택하려고 합니다. 3.

데이터 프레임 슬라이스

아래 다이어그램에서는 데이터 프레임의 다양한 선택 항목에 액세스하는 방법을 보여줍니다.

  • 노란색 화살표는 다음을 선택합니다. 1의 칼럼 2
  • 녹색 화살표는 다음을 선택합니다. 1 ~ 2
  • 빨간색 화살표는 다음을 선택합니다. 칼럼 1
  • 파란색 화살표는 다음을 선택합니다. 1 년 ~ 3 년 3 ~ 4

왼쪽 부분을 비워두면 R은 다음을 선택합니다. 모든 행. 비유하자면, 오른쪽 부분을 비워두면 R은 다음을 선택합니다. 모든 열.

데이터 프레임 슬라이스

콘솔에서 코드를 실행할 수 있습니다.

## Select row 1 in column 2
df[1,2]

출력:

## [1] book
## Levels: book pen pencil_case textbook
## Select Rows 1 to 2
df[1:2,]

출력:

##   ID items store price
## 1 10  book  TRUE   2.5
## 2 20   pen FALSE   8.0
## Select Columns 1
df[,1]

출력:

## [1] 10 20 30 40
## Select Rows 1 to 3 and columns 3 to 4
df[1:3, 3:4]

출력:

##   store price
## 1  TRUE   2.5
## 2 FALSE   8.0
## 3  TRUE  10.0

이름으로 열을 선택할 수도 있습니다. 예를 들어 아래 코드는 ID와 store라는 두 개의 열을 추출합니다.

# Slice with columns name
df[, c('ID', 'store')]

출력:

##   ID store
## 1 10  TRUE
## 2 20 FALSE
## 3 30  TRUE
## 4 40 FALSE

데이터 프레임에 열 추가

데이터 프레임에 열을 추가할 수도 있습니다. 데이터프레임 R 변수를 추가하고 R의 데이터프레임에 열을 추가하려면 $ 기호를 사용해야 합니다.

# Create a new vector
quantity <- c(10, 35, 40, 5)

# Add `quantity` to the `df` data frame
df$quantity <- quantity
df

출력:

##   ID       items store price quantity
## 1 10        book  TRUE   2.5       10
## 2 20         pen FALSE   8.0       35
## 3 30    textbook  TRUE  10.0       40
## 4 40 pencil_case FALSE   7.0        5

참고: 벡터의 요소 수는 데이터 프레임의 요소 수와 동일해야 합니다. 팔로우 실행wing 데이터프레임 R에 열을 추가하는 명령문

quantity <- c(10, 35, 40)
# Add `quantity` to the `df` data frame
df$quantity <- quantity

오류가 발생합니다.

Error in `

lt;-.data.frame`(`*tmp*`, quantity, value = c(10, 35, 40))
 replacement has 3 rows, data has 4

데이터 프레임의 열 선택

때로는 나중에 사용하기 위해 데이터 프레임의 열을 저장하거나 열에 대한 작업을 수행해야 하는 경우가 있습니다. $ 기호를 사용하여 데이터 프레임에서 열을 선택할 수 있습니다.

# Select the column ID
df$ID

출력:

## [1] 1 2 3 4

데이터 프레임 부분 집합

이전 섹션에서는 조건 없이 전체 열을 선택했습니다. 가능하다 서브 세트 특정 조건이 참인지 아닌지에 따라 결정됩니다.

subset() 함수를 사용합니다.

subset(x, condition)
arguments:
- x: data frame used to perform the subset
- condition: define the conditional statement

가격이 10보다 높은 항목만 반품하고 싶으면 다음을 수행할 수 있습니다.

# Select price above 5
subset(df, subset = price > 5)

출력:

ID       items store price
2 20         pen FALSE     8
3 30    textbook  TRUE    10
4 40 pencil_case FALSE     7