R에서 data.table을 필터링하는 방법(예제 포함)


다음 방법을 사용하여 R의 data.table에서 행을 필터링할 수 있습니다.

방법 1: 단일 조건을 기준으로 행 필터링

 dt[col1 == ' A ', ]

방법 2: 목록에 값이 포함된 행 필터링

 dt[col1 %in% c(' A ', ' C '), ]

방법 3: 여러 조건 중 하나가 충족되는 행 필터링

 dt[col1 == ' A ' | col2 < 10 , ]

방법 4: 여러 조건이 충족되는 행 필터링

 dt[col1 == ' A ' & col2 < 10 , ]

다음 예에서는 R의 다음 data.table을 사용하여 실제로 각 메서드를 사용하는 방법을 보여줍니다.

 library (data.table)

#create data table
dt <- data. table (team=c('A', 'A', 'A', 'B', 'C'),
                 points=c(99, 90, 86, 88, 95),
                 assists=c(33, 28, 31, 39, 34),
                 rebounds=c(30, 28, 24, 24, 28))

#view data table
dt

   team points assists rebounds
1: A 99 33 30
2: A 90 28 28
3: A 86 31 24
4: B 88 39 24
5: C 95 34 28

예 1: 조건에 따라 행 필터링

다음 코드는 열의 값이 “A”인 행만 필터링하는 방법을 보여줍니다.

 #filter for rows where team is A
dt[team == ' A ', ]

   team points assists rebounds
1: A 99 33 30
2: A 90 28 28
3: A 86 31 24

예 2: 목록의 값이 포함된 행 필터링

다음 코드는 열의 값이 “A” 또는 “C”인 행만 필터링하는 방법을 보여줍니다.

 #filter for rows where team is A or C
dt[team %in% c(' A ', ' C '), ]

   team points assists rebounds
1: A 99 33 30
2: A 90 28 28
3: A 86 31 24
4: C 95 34 28

관련 항목: R에서 %in% 연산자를 사용하는 방법(예제 포함)

예 3: 여러 조건 중 하나가 충족되는 필터 행

다음 코드는 열의 값이 “A” 이거나 포인트 열의 값이 90보다 작은 행만 필터링하는 방법을 보여줍니다.

 #filter for rows where team is A or points < 90
dt[team == ' A ' | points < 90 , ]

   team points assists rebounds
1: A 99 33 30
2: A 90 28 28
3: A 86 31 24
4: B 88 39 24

참고 : | 연산자는 R에서 “OR”을 의미합니다.

예 4: 여러 조건이 충족되는 행 필터링

다음 코드는 열의 값이 “A” 이고 포인트 열의 값이 90보다 작은 행만 필터링하는 방법을 보여줍니다.

 #filter for rows where team is A and points < 90
dt[team == ' A ' & points < 90 , ]

   team points assists rebounds
1: A 86 31 24

참고 : & 연산자는 R에서 “AND”를 의미합니다.

추가 리소스

다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

R에서 벡터를 필터링하는 방법
R에서 0이 있는 줄을 삭제하는 방법
R의 데이터 프레임에서 빈 줄을 제거하는 방법

의견을 추가하다

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