ΠΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°ΡΡ ΡΡΠΎΠ»Π±Π΅Ρ demand
Π² demand2
. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ rename
plyr, Π° Π½Π΅ rename
dplyr:
library(dplyr)
num <- 2
BOD %>% plyr::rename(list(demand = paste0("demand", num))) # ok
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ rename
Π² dplyr ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ new = old ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ plyr, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ old = new, Π½Π΅Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ Ρ rename
Π² dplyr. ΠΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΠΎΠ΄Π»ΠΈΠ²ΠΎ, Π½ΠΎ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ΄Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅:
library(dplyr)
num <- 2
BOD %>% do({ L <- setNames(list("demand"), paste0("demand", num)); rename_(., L) }) # bad
Π’Π°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ Π΄Π°Π΅Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅Π»ΡΠ·Ρ ΡΠΊΠ°Π·Π°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΠ΄Π΅Ρ ΠΈΠΌΡ:
library(dplyr)
num <- 2
BOD %>% rename(list(paste0("demand", num) = demand)) # bad
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½ΠΈ rename
plyr, Π½ΠΈ rename
dplyr Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΎΠ±ΡΠΈΠΌΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ plyr ΠΌΠΎΠΆΠ΅Ρ Π»Π΅Π³ΠΊΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΈΠΌΠ΅Π½ΠΈ, Π° dplyr β Π² ΡΡΠ°ΡΠΎΠΌ. renameCol
Π² ΠΏΠ°ΠΊΠ΅ΡΠ΅ doBy ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΡΠΎ ΡΡΠ°ΡΡΠΌ, ΡΠ°ΠΊ ΠΈ Ρ Π½ΠΎΠ²ΡΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ renameCol(indata, src, tgt)
, Π³Π΄Π΅ src
ΠΈ tgt
β Π²Π΅ΠΊΡΠΎΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΠΈΠΌΠ΅Π½Π°, ΠΈ Π»ΡΠ±ΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ
ΠΈΠ»ΠΈ ΠΎΠ±Π° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
# rename column named paste0(base, num) to toupper(base)
# (In this case it renames column x2 to X)
library(dplyr)
base <- "x"
num <- 2
anscombe %>% doBy::renameCol(paste0(base, num), toupper(base))
Π‘ΡΠ°Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΏΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ tidyval. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
old_var <- "x"
new_var <- "y"
df %>% rename(!!old_var ~ !!new_var)
Π£ Π½Π°Ρ Π±ΡΠ΄Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ.
ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ,
ΡΡΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΉΡΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ΠΎ?
new_name <- "y"
mtcars %>% dplyr::rename( mpg ~ !!new_name )
Π΄Π°Π΅Ρ ΠΌΠ½Π΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ Ρ dplyr Π²Π΅ΡΡΠΈΠΈ 0.7.4:
ΠΡΠΈΠ±ΠΊΠ°: Π²ΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π½Π°Π·Π²Π°Π½Ρ
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ,
Π€Π΅Π»ΠΈΠΊΡ
ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ:
dplyr::rename(mtcars, !! new_name := mpg)
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ :=
Π²ΠΌΠ΅ΡΡΠΎ =
, ΡΡΠΎΠ±Ρ ΡΡΠ΅ΡΡΡ !!
Ρ Π»Π΅Π²ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ.
ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ. Π― ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π½Π°ΡΠ΅Π» ΡΡΠΎ Π² vignette("programming")
, ΠΎΡΠ΅Π½Ρ ΠΊΡΠ°ΡΠΈΠ²ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ! ΠΡΠ±Π»Ρ Π°ΠΊΠΊΡΡΠ°ΡΠ½ΡΡ Π²ΡΠ΅Π»Π΅Π½Π½ΡΡ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΡΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
:=
Π²ΠΌΠ΅ΡΡΠΎ=
, ΡΡΠΎΠ±Ρ ΡΡΠ΅ΡΡΡ!!
Ρ Π»Π΅Π²ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ.