我写信给您,是因为我需要删除矩阵的列名中间的空格。我在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
.......
非常感谢您
答案 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_all
和tidyverse
library(tidyverse)
df1 %>%
rename_all(~ str_replace(., ' ', '_'))
注意:gsub
首先在这里得到回答。