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
참고: 벡터의 요소 수는 데이터 프레임의 요소 수와 같아야 합니다. 다음 문장을 실행하여 데이터 프레임 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