Possiamo usare rename_withper rinominare le colonne con una funzione ( stringrfunzioni, ad esempio).
Considera i seguenti dati df_1:
df_1 <- data.frame(
x = replicate(n = 3, expr = rnorm(n = 3, mean = 10, sd = 1)),
y = sample(x = 1:2, size = 10, replace = TRUE)
)
names(df_1)
#[1] "x.1" "x.2" "x.3" "y"
Rinomina tutte le variabili con dplyr::everything():
library(tidyverse)
df_1 %>%
rename_with(.data = ., .cols = everything(.),
.fn = str_replace, pattern = '.*',
replacement = str_c('var', seq_along(.), sep = '_')) %>%
names()
#[1] "var_1" "var_2" "var_3" "var_4"
Rinomina dal nome di particelle con alcuni dplyrverbi ( starts_with, ends_with, contains, matches, ...).
Esempio con .( xvariabili):
df_1 %>%
rename_with(.data = ., .cols = contains('.'),
.fn = str_replace, pattern = '.*',
replacement = str_c('var', seq_along(.), sep = '_')) %>%
names()
#[1] "var_1" "var_2" "var_3" "y"
Rinomina per classe con molte funzioni di prova di classe, come is.integer, is.numeric, is.factor...
Esempio con is.integer( y):
df_1 %>%
rename_with(.data = ., .cols = is.integer,
.fn = str_replace, pattern = '.*',
replacement = str_c('var', seq_along(.), sep = '_')) %>%
names()
#[1] "x.1" "x.2" "x.3" "var_1"
L'avviso:
Messaggi di avviso: 1: In stri_replace_first_regex (stringa, modello, fix_replacement (sostituzione),: la lunghezza dell'oggetto più lunga non è un multiplo della lunghezza dell'oggetto più corta 2: In names [cols] <- .fn (names [cols], ...) : il numero di articoli da sostituire non è un multiplo della lunghezza di sostituzione
Non è rilevante, poiché è solo un'incoerenza seq_along(.)rispetto alla funzione di sostituzione.
drop=TRUEdall'argomento predefinito in[, che causa la conversione di un oggetto "1 colonna" in un vettore ... e i vettori non hannocolnames. Un esempio di ciò che hai provato sarebbe molto utile.