기능 언급 할 몇 가지 답변이 있습니다 dplyr::rename_with
및 rlang::set_names
이미는. 그들은 분리되어 있습니다. 이 답변은 두 가지의 차이점과 함수 및 수식을 사용하여 열 이름을 바꾸는 방법을 보여줍니다.
rename_with
로부터 dplyr
패키지로 주어진 컬럼 이름을 선택하는 기능 또는 수식을 사용할 수 .cols
인수. 예를 들어 함수 이름을 전달합니다 toupper
.
library(dplyr)
rename_with(head(iris), toupper, starts_with("Petal"))
공식을 전달하는 것과 같습니다 ~ toupper(.x)
.
rename_with(head(iris), ~ toupper(.x), starts_with("Petal"))
모든 열의 이름을 바꿀 때 set_names
rlang 패키지에서 사용할 수도 있습니다 . 다른 예제를 만들기 위해 paste0
이름 바꾸기 기능으로 사용하겠습니다 . pasteO
2 개의 인수를 취하므로 함수 또는 공식을 사용하는지 여부에 따라 두 번째 인수를 전달하는 방법이 다릅니다.
rlang::set_names(head(iris), paste0, "_hi")
rlang::set_names(head(iris), ~ paste0(.x, "_hi"))
rename_with
데이터 프레임을 첫 번째 인수로 .data
, 함수를 두 번째 인수로 .fn
, 모든 열을 세 번째 인수 .cols=everything()
로, 함수 매개 변수를 네 번째 인수로 전달하여 동일한 결과를 얻을 수 있습니다 ...
. 또는 두 번째, 세 번째 및 네 번째 인수를 두 번째 인수로 지정된 수식에 배치 할 수 있습니다.
rename_with(head(iris), paste0, everything(), "_hi")
rename_with(head(iris), ~ paste0(.x, "_hi"))
rename_with
데이터 프레임에서만 작동합니다. set_names
더 일반적이며 벡터 이름 변경도 수행 할 수 있습니다.
rlang::set_names(1:4, c("a", "b", "c", "d"))
old = c("a", "d", "e")