본문 바로가기

Dead Code/DEPRECATED-R

[R코드연습장] dplyr - select

select

데이터 프레임 중 원하는 열을 선택하는 방법은 패키지를 깔지 않아도 되는데,,, 더 편한 방법을 제공하기 위한 거겠지 뭐... 뭐가 더 편한지 한번 보자


 

all variable name check

# 기본으로 주어지는 mtcars 데이터프레임의 변수명을 확인했습니다. 총 11개 입니다.
names(mtcars)

 

 


 

dplyr을 사용하지 않았을 때의 선택 방법은 좀 복잡하다

mymtcars_nodplyr <- mtcars[,c("mpg","cyl")]
# mymtcars_nodplyr <- mtcars[,c(1,2)]
names(mymtcars_index_num)

 

 


 

select by variable name

# 변수 이름을 선택하여 세로운 데이터프레임(mymtcars)로 넣었습니다.
mymtcars <- select(mtcars, mpg, cyl, carb)
# mymtcars <- select(mtcars, c(mpg, cyl, carb))
# 3가지 변수만 선택한 관계로 3개의 변수를 가지고 있을 겁니다.
names(mymtcars)

 

 


 

- 는 그 변수를 제외한 나머지 변수를 선택하게 됩니다.

mymtcars_minus <- select(mtcars, -mpg, -cyl)
# mymtcars_minus <- select(mtcars, -c(mpg, cyl))
# 두 개의 변수를 제외하고 새로운 데이터프레임을 만들고 변수의 개수를 확인합니다.
names(mymtcars_minus)
# 변수가 총 11개 중 9개가 되었습니다.

 

 


 

: 기호는 두 개 변수 사이에 있는 모든 변수를 선택합니다.

mymtcars_col <- select(mtcars, cyl:wt)
# cyl과 wt 사이에는 3개의 변수가 더 있습니다.
names(mymtcars_col)
# 총 5개의 변수가 선택된 데이터프레임이 생성되었습니다.

 

 


 

: 기호는 - 와 사용하여 제외하는 방법으로 사용할 수 있습니다.

mymtcars_col <- select(mtcars, -(cyl:wt))
names(mymtcars_col)
# 총 11개의 변수 중에서 5개를 제외한 6개만 남아 있습니다.

 

 


 

select by index number

# 변수의 순서 번호로 선택할 수 있습니다.
mymtcars_index_num <- select(mtcars, 1, 3, 4, 5)
names(mymtcars_index_num)
# 1, 3, 4, 5 번째 변수가 선택되어, 4개의 변수를 담겨 있습니다.

 

 


 

select by index number with -

mymtcars_index_num <- select(mtcars, -1, -3, -4)
# mymtcars_index_num <- select(mtcars, -c(1, 3, 4))
names(mymtcars_index_num)
# 11개 중 3개를 뺀 8개의 변수가 되었습니다.

 

 



starts_with / ends_with : 특정 문자로 시작하거나 끝나는 변수만을 선택합니다.

# 변수명이 "c"로 시작하는 경우만 추출
mtcars_varName <- select(mtcars, starts_with("c"))
names(mtcars_varName)

 

 

 

 

# 변수명이 "l"로 끝나는 경우만 추출
mtcars_varName <- select(mtcars, ends_with("l"))
names(mtcars_varName)

 

 


 

 

contains, matches : 특정 문자를 포함하는 변수만을 선택합니다.

# 변수명에 "a"를 포함하는 경우만 추출(맨앞/맨뒤 상관없음)
mtcars_varName <- select(mtcars, contains("a"))
names(mtcars_varName)

 

 

 

 

# 변수명에 "a"를 포함하는 경우만 추출
# "."을 붙이는 경우 중간을 의미 (아래 예시에서는 맨앞/맨뒤 제외되고 중간만)
mtcars_varName <- select(mtcars, matches(".a."))
names(mtcars_varName)

 

 


 

 

one_of : 다른 벡터를 통해 추출할 이름을 불러옵니다.

# 변수명을 담은 벡터를 one_of를 통해 추출
# 이름이 매칭되지 않을 경우, 워닝으로 알려줌
vari_name <- c("mpg", "cyl")
mtcars_varName <- select(mtcars, one_of(vari_name))
names(mtcars_varName)

 

 

%23%20select2%0A%0A@%5B%uD2F0%uC2A4%uD1A0%uB9AC%5D%0A%0A----%0A%0A%uD2B9%uC815%20%uBB38%uC790%uB85C%20%uC2DC%uC791%uD558%uAC70%uB098%20%uB05D%uB098%uB294%20%uBCC0%uC218%uB9CC%uC744%20%uC120%uD0DD%uD569%uB2C8%uB2E4.%0A%60%60%60r%0A%23%20%uBCC0%uC218%uBA85%uC774%20%22c%22%uB85C%20%uC2DC%uC791%uD558%uB294%20%uACBD%uC6B0%uB9CC%20%uCD94%uCD9C%0Amtcars_varName%20%3C-%20select%28mtcars%2C%20starts_with%28%22c%22%29%29%0Anames%28mtcars_varName%29%0A%60%60%60%0A%21%5BAlt%20text%5D%28./20180315114359.png%29%0A%0A%60%60%60r%0A%23%20%uBCC0%uC218%uBA85%uC774%20%22l%22%uB85C%20%uB05D%uB098%uB294%20%uACBD%uC6B0%uB9CC%20%uCD94%uCD9C%0Amtcars_varName%20%3C-%20select%28mtcars%2C%20ends_with%28%22l%22%29%29%0Anames%28mtcars_varName%29%0A%60%60%60%0A%21%5BAlt%20text%5D%28./20180315114404.png%29%0A%0A----%0A%0A%uD2B9%uC815%20%uBB38%uC790%uB97C%20%uD3EC%uD568%uD558%uB294%20%uBCC0%uC218%uB9CC%uC744%20%uC120%uD0DD%uD569%uB2C8%uB2E4.%0A%60%60%60r%0A%23%20%uBCC0%uC218%uBA85%uC5D0%20%22a%22%uB97C%20%uD3EC%uD568%uD558%uB294%20%uACBD%uC6B0%uB9CC%20%uCD94%uCD9C%28%uB9E8%uC55E/%uB9E8%uB4A4%20%uC0C1%uAD00%uC5C6%uC74C%29%0Amtcars_varName%20%3C-%20select%28mtcars%2C%20contains%28%22a%22%29%29%0Anames%28mtcars_varName%29%0A%60%60%60%0A%21%5BAlt%20text%5D%28./20180315114942.png%29%0A%0A%0A%60%60%60r%0A%23%20%uBCC0%uC218%uBA85%uC5D0%20%22a%22%uB97C%20%uD3EC%uD568%uD558%uB294%20%uACBD%uC6B0%uB9CC%20%uCD94%uCD9C%0A%23%20%22.%22%uC744%20%uBD99%uC774%uB294%20%uACBD%uC6B0%20%uC911%uAC04%uC744%20%uC758%uBBF8%20%28%uC544%uB798%20%uC608%uC2DC%uC5D0%uC11C%uB294%20%uB9E8%uC55E/%uB9E8%uB4A4%20%uC81C%uC678%uB418%uACE0%20%uC911%uAC04%uB9CC%29%0Amtcars_varName%20%3C-%20select%28mtcars%2C%20matches%28%22.a.%22%29%29%0Anames%28mtcars_varName%29%0A%60%60%60%0A%21%5BAlt%20text%5D%28./20180315114949.png%29%0A%0A----%0A%0A%uB2E4%uB978%20%uBCA1%uD130%uB97C%20%uD1B5%uD574%20%uCD94%uCD9C%uD560%20%uC774%uB984%uC744%20%uBD88%uB7EC%uC635%uB2C8%uB2E4.%0A%60%60%60r%0A%23%20%uBCC0%uC218%uBA85%uC744%20%uB2F4%uC740%20%uBCA1%uD130%uB97C%20one_of%uB97C%20%uD1B5%uD574%20%uCD94%uCD9C%0A%23%20%uC774%uB984%uC774%20%uB9E4%uCE6D%uB418%uC9C0%20%uC54A%uC744%20%uACBD%uC6B0%2C%20%uC6CC%uB2DD%uC73C%uB85C%20%uC54C%uB824%uC90C%0Avari_name%20%3C-%20c%28%22mpg%22%2C%20%22cyl%22%29%0Amtcars_varName%20%3C-%20select%28mtcars%2C%20one_of%28vari_name%29%29%0Anames%28mtcars_varName%29%0A%60%60%60%0A%21%5BAlt%20text%5D%28./20180315115733.png%29%0A