A: 조건에 따라 데이터 프레임에서 행을 삭제합니다.


R의 데이터 프레임에서 특정 값을 가진 행을 제거하려면 subset() 함수를 사용할 수 있습니다.

 #only keep rows where col1 value is less than 10 and col2 value is less than 8
new_df <- subset(df, col1 < 10 & col2< 8 ) 

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

 #create data frame
df <- data. frame (a=c(1, 3, 4, 6, 8, 9),
                 b=c(7, 8, 8, 7, 13, 16),
                 c=c(11, 13, 13, 18, 19, 22),
                 d=c(12, 16, 18, 22, 29, 38))

#view data frame
df

  abcd
1 1 7 11 12
2 3 8 13 16
3 4 8 13 18
4 6 7 18 22
5 8 13 19 29
6 9 16 22 38

예시 1: 특정 값과 동일한 행 삭제

다음 코드는 “c” 열의 값이 13인 모든 행을 삭제하는 방법을 보여줍니다.

 #remove rows where column 'c' is equal to 13
new_df <- subset(df, c != 13) 

#view updated data frame
new_df

  abcd
1 1 7 11 12
4 6 7 18 22
5 8 13 19 29
6 9 16 22 38

예 2: 여러 값 중 하나와 동일한 행 삭제

다음 코드는 “b” 열의 값이 7 또는 8인 모든 행을 삭제하는 방법을 보여줍니다.

 #remove rows where value in column b is equal to 7 or 8
new_df <- subset(df, ! (b %in% c(7, 8)))

#view updated data frame
new_df

  abcd
5 8 13 19 29
6 9 16 22 38

예시 3: 여러 조건에 따라 행 삭제

다음 코드는 “b” 열의 값이 7이거나 “d” 열의 값이 38인 모든 행을 삭제하는 방법을 보여줍니다.

 #remove rows where value in column b is 7 or value in column d is 38
new_df <- subset(df, b != 7 & d != 38)

#view updated data frame
new_df

  abcd
2 3 8 13 16
3 4 8 13 18
5 8 13 19 29

추가 리소스

R에서 중복 줄을 제거하는 방법
R에서 %in% 연산자를 사용하는 방법
R에서 값을 다시 코딩하는 방법

의견을 추가하다

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