데이터 프레임에서 짝수행과 홀수행 선별하는 다른 방법
데이터 프레임에서 짝수행과 홀수행을 구분하는 더 간단한 방법이 있어서 메모할 겸 올려본다.
TRUE, FALSE 논리연산을 이용한 방법이 가장 간단해 보인다. 응용하면 짝수열과 홀수열도 간단히 선택할 수 있다.
## 데이터셋 구성
a <- rnorm(99)
b <- runif(99)
c <- rnorm(99)
d <- runif(99)
e <- rnorm(99)
f <- runif(99)
g <- rnorm(99)
h <- runif(99)
i <- rnorm(99)
j <- runif(99)
dt <-data.frame(a,b,c,d,e,f,g,h,i,j)
## 필요한 행 선택하기
dt[c(TRUE, FALSE), ] # (1, 3, 5, 7... 행 선택)
dt[c(FALSE, TRUE), ] # (2, 4, 6, 7... 행 선택)
dt[c(TRUE, FALSE, FALSE), ] # (1, 4, 7, 10...행 선택)
dt[c(TRUE, FALSE, FALSE, FALSE, FALSE), ]
## 필요한 열 선택하기
dt[ ,c(TRUE, FALSE)] # (1, 3, 5, 7... 열 선택)
dt[ ,c(FALSE, TRUE)] # (2, 4, 6, 7... 열 선택)
dt[ ,c(TRUE, FALSE, FALSE)] # (1, 4, 7, 10...열 선택)
dt[ ,c(TRUE, FALSE, FALSE, FALSE, FALSE)]
seq()함수를 이용하지 않고 열 번호(row_number)를 2로 나눈 나머지를 이용하여 선별할 수도 있다.
df <- data.frame(V1 = seq(26), V2 = letters)
df %>% filter(row_number() %% 2 == 0) ## 짝수열
df %>% filter(row_number() %% 2 == 1) ## 홀수열
df %>% filter(row_number() %% 3 == 1)