R에서 데이터 프레임을 부분집합하는 방법(4가지 예)


다음 기본 구문을 사용하여 R에서 데이터 프레임의 부분 집합을 지정할 수 있습니다.

 df[rows, columns]

다음 예에서는 다음 데이터 프레임에서 실제로 이 구문을 사용하는 방법을 보여줍니다.

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C', 'C'),
                 points=c(77, 81, 89, 83, 99, 92, 97),
                 assists=c(19, 22, 29, 15, 32, 39, 14))

#view data frame
df

  team points assists
1 A 77 19
2 A 81 22
3 B 89 29
4 B 83 15
5 C 99 32
6 C 92 39
7 C 97 14

예 1: 열을 선택하여 하위 집합 데이터 프레임

다음 코드는 열 이름을 기준으로 데이터 프레임의 부분 집합을 지정하는 방법을 보여줍니다.

 #select all rows for columns 'team' and 'assists'
df[, c(' team ', ' assists ')]

  team assists
1 to 19
2 to 22
3 B 29
4 B 15
5 C 32
6 C 39
7 C 14

열 인덱스 값으로 데이터 프레임을 부분 집합할 수도 있습니다.

 #select all rows for columns 1 and 3
df[, c(1, 3)]

  team assists
1 to 19
2 to 22
3 B 29
4 B 15
5 C 32
6 C 39
7 C 14

예 2: 열을 제외한 하위 집합 데이터 프레임

다음 코드는 특정 열 이름을 제외하여 데이터 프레임의 부분 집합을 지정하는 방법을 보여줍니다.

 #define columns to exclude
cols <- names(df) %in% c(' points ')

#exclude points column
df[!cols]

  team assists
1 to 19
2 to 22
3 B 29
4 B 15
5 C 32
6 C 39
7 C 14

인덱스 값을 사용하여 열을 제외할 수도 있습니다.

 #exclude column 2
df[, c(-2)]

  team assists
1 to 19
2 to 22
3 B 29
4 B 15
5 C 32
6 C 39
7 C 14

예 3: 행을 선택하여 하위 집합 데이터 프레임

다음 코드는 특정 행을 기준으로 데이터 프레임의 부분 집합을 지정하는 방법을 보여줍니다.

 #select rows 1, 5, and 7
df[c(1, 5, 7), ]

  team points assists
1 A 77 19
5 C 99 32
7 C 97 14

행 범위를 선택하여 데이터 프레임의 하위 집합을 설정할 수도 있습니다.

 #select rows 1 through 5
df[1:5, ]

  team points assists
1 A 77 19
2 A 81 22
3 B 89 29
4 B 83 15
5 C 99 32

예시 4: 조건에 따른 하위 집합 데이터 프레임

다음 코드는 subset() 함수를 사용하여 특정 조건을 충족하는 행과 열을 선택하는 방법을 보여줍니다.

 #select rows where points is greater than 90
subset(df, points > 90)

  team points assists
5 C 99 32
6 C 92 39
7 C 97 14

| 다음 조건 중 하나를 충족하는 행을 선택하는 연산자(“or”):

 #select rows where points is greater than 90 or less than 80
subset(df, points > 90 | points < 80)

  team points assists
1 A 77 19
5 C 99 32
6 C 92 39
7 C 97 14

또한 & (“and”) 연산자를 사용하여 여러 조건을 충족하는 행을 선택할 수도 있습니다.

 #select rows where points is greater than 90 and assists is greater than 30
subset(df, points > 90 & assists > 30)

  team points assists
5 C 99 32
6 C 92 39

조건에 따라 특정 열만 선택하려면 select 인수를 사용할 수도 있습니다.

 #select rows where points is greater than 90 and only show 'team' column
subset(df, points > 90, select=c(' team '))

  team
5C
6C
7C

추가 리소스

조건에 따라 R의 데이터 프레임에서 행을 제거하는 방법
R에서 데이터 프레임의 값을 바꾸는 방법
R의 데이터 프레임에서 열을 제거하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다