удалить пробелы из имен столбцов после model.matrix

Я пишу вам, потому что мне нужно удалить пробелы в середине имен столбцов матрицы. Я работаю в Р.

В моем коде я только что запустил команду model.matrix. Он добавляет столбец для каждого фактора, таким образом, если в имени фактора были пробелы, он перемещается в имя столбца.

Я хотел бы удалить их.

Вот ниже пример

Intercept   Region_Factor 1 A   Region_Factor 2 A    Region_Factor 3 A     VarA 10    
    1               1                  0                    0               1  
    1               0                  1                    0               0.52
 .......    

Я хотел бы получить имена столбцов следующим образом:

Intercept   Region_Factor_1_A    Region_Factor_2_A    Region_Factor_3_A    VarA_10
    1               1                   0                    0               1  
    1               0                   1                    0               0.52
 .......

Большое спасибо


person xxx    schedule 26.08.2019    source источник


Ответы (2)


Можно было бы использовать gsub для сопоставления пробелов в именах столбцов и заменить их на _.

colnames(df1) <- gsub(" ", '_', colnames(df1))

Если нужно заменить только один экземпляр пробела, используйте sub

colnames(df1) <- sub(" ", '_', colnames(df1))

Или другой вариант chartr

colnames(df1) <- chartr( ' ', '_', colnames(df1))

Или еще вариант rename_all с tidyverse

library(tidyverse)
df1 %>%
   rename_all(~ str_replace(., ' ', '_'))

ПРИМЕЧАНИЕ. Впервые на gsub ответили здесь.

person akrun    schedule 26.08.2019

Вы можете прочитать имена столбцов с помощью colnames, заменить пробелы на gsub и вернуть их в качестве имен столбцов, что записывается как:

colnames(matrix)=gsub(" ", "_", colnames(matrix), fixed = TRUE)

person Chelmy88    schedule 26.08.2019