1

我给你写信是因为我需要删除矩阵列名中间的空格。我在 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
 .......

太感谢了

4

2 回答 2

2

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

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

于 2019-08-26T15:01:12.170 回答
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这里首先回答了。

于 2019-08-26T15:00:42.060 回答