从model.matrix之后的列名称中删除空格

时间:2019-08-26 14:58:01

标签: r whitespace model.matrix

我写信给您,是因为我需要删除矩阵的列名中间的空格。我在R工作。

在我的代码中,我刚刚运行了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
 .......

非常感谢您

2 个答案:

答案 0 :(得分:2)

您可以用colnames读取列名,用gsub替换空格,然后将其作为列名放回去,写为:

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

答案 1 :(得分:0)

一种选择是使用gsub来匹配列名中的空格,并替换为_

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

如果只有一个实例要替换,请使用sub

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

或者另一个选择是chartr

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

或者另一个选择是rename_alltidyverse

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

注意:gsub首先在这里得到回答。

相关问题