R의 열별로 중복 행 제거
-
dplyr
패키지의distinct
기능을 사용하여 R에서 열별로 중복 행 제거 -
group_by
,filter
및duplicated
함수를 사용하여 R에서 열별로 중복 행 제거 -
group_by
및slice
함수를 사용하여 R에서 열별로 중복 행 제거
이 기사에서는 R에서 열별로 중복 행을 제거하는 방법을 소개합니다.
dplyr
패키지의distinct
기능을 사용하여 R에서 열별로 중복 행 제거
dplyr
패키지는 R 언어에서 사용되는 가장 일반적인 데이터 조작 라이브러리 중 하나 인distinct
기능을 제공합니다. distinct
는 주어진 데이터 프레임에서 고유 한 행을 선택합니다. 데이터 프레임을 첫 번째 인수로 사용하고 선택 중에 고려해야하는 변수를 사용합니다. 고유 한 행을 필터링하기 위해 여러 열 변수를 제공 할 수 있지만 다음 코드 스 니펫에서는 단일 변수 예제를 보여줍니다. 세 번째 인수는 선택 사항이며 기본값 인FALSE
를 갖지만 사용자가 명시 적으로TRUE
를 전달하면 함수는 필터링 후 데이터 프레임의 모든 변수를 유지합니다. dplyr
는%>%
형식의 파이프라는 연산자 함수를 사용합니다. 이는 오른쪽 함수의 첫 번째 인수로 왼쪽 변수를 제공하는 것으로 해석됩니다. 즉,x %?% f(y)
표기법은f(x, y)
가됩니다.
library(dplyr)
df1 <- data.frame(id = c(1, 2, 2, 3, 3, 4, 5, 5),
gender = c("F", "F", "M", "F", "B", "B", "F", "M"),
variant = c("a", "b", "c", "d", "e", "f", "g", "h"))
t1 <- df1 %>% distinct(id, .keep_all = TRUE)
t2 <- df1 %>% distinct(gender, .keep_all = TRUE)
t3 <- df1 %>% distinct(variant, .keep_all = TRUE)
df2 <- mtcars
tmp1 <- df2 %>% distinct(cyl, .keep_all = TRUE)
tmp2 <- df2 %>% distinct(mpg, .keep_all = TRUE)
group_by
,filter
및duplicated
함수를 사용하여 R에서 열별로 중복 행 제거
열 값으로 중복 행을 제거하는 또 다른 솔루션은 열 변수로 데이터 프레임을 그룹화 한 다음filter
및duplicated
함수를 사용하여 요소를 필터링하는 것입니다. 첫 번째 단계는dplyr
패키지의 일부인group_by
함수로 수행됩니다. 다음으로 이전 작업의 출력이filter
기능으로 리디렉션되어 중복 행을 제거합니다.
library(dplyr)
df1 <- data.frame(id = c(1, 2, 2, 3, 3, 4, 5, 5),
gender = c("F", "F", "M", "F", "B", "B", "F", "M"),
variant = c("a", "b", "c", "d", "e", "f", "g", "h"))
t1 <- df1 %>% group_by(id) %>% filter (! duplicated(id))
t2 <- df1 %>% group_by(gender) %>% filter (! duplicated(gender))
t3 <- df1 %>% group_by(variant) %>% filter (! duplicated(variant))
df2 <- mtcars
tmp3 <- df2 %>% group_by(cyl) %>% filter (! duplicated(cyl))
tmp4 <- df2 %>% group_by(mpg) %>% filter (! duplicated(mpg))
group_by
및slice
함수를 사용하여 R에서 열별로 중복 행 제거
또는slice
와 함께group_by
기능을 사용하여 열 값별로 중복 행을 제거 할 수 있습니다. slice
도dplyr
패키지의 일부이며 색인별로 행을 선택합니다. 흥미롭게도 데이터 프레임이 그룹화 될 때slice
는 다음 샘플 코드에 설명 된 것처럼 각 그룹의 지정된 인덱스에있는 행을 선택합니다.
library(dplyr)
df1 <- data.frame(id = c(1, 2, 2, 3, 3, 4, 5, 5),
gender = c("F", "F", "M", "F", "B", "B", "F", "M"),
variant = c("a", "b", "c", "d", "e", "f", "g", "h"))
t1 <- df1 %>% group_by(id) %>% slice(1)
t2 <- df1 %>% group_by(gender) %>% slice(1)
t3 <- df1 %>% group_by(variant) %>% slice(1)
df2 <- mtcars
tmp5 <- df2 %>% group_by(cyl) %>% slice(1)
tmp6 <- df2 %>% group_by(mpg) %>% slice(1)
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook