从 model.matrix 之后的列名中删除空格
remove whitespace from column names after 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
.......
非常感谢
一个选项是使用 gsub
来匹配列名中的 space 并替换为 _
colnames(df1) <- gsub(" ", '_', colnames(df1))
如果只有一个 space 实例要替换,请使用 sub
colnames(df1) <- sub(" ", '_', colnames(df1))
或者另一种选择是 chartr
colnames(df1) <- chartr( ' ', '_', colnames(df1))
或者另一种选择是 rename_all
和 tidyverse
library(tidyverse)
df1 %>%
rename_all(~ str_replace(., ' ', '_'))
注意:gsub
首先在这里回答。
可以把列名读成colnames
,把空格换成gsub
再放回列名,写成:
colnames(matrix)=gsub(" ", "_", colnames(matrix), fixed = TRUE)
我写信给你是因为我需要删除矩阵列名中间的空格。我在 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
.......
非常感谢
一个选项是使用 gsub
来匹配列名中的 space 并替换为 _
colnames(df1) <- gsub(" ", '_', colnames(df1))
如果只有一个 space 实例要替换,请使用 sub
colnames(df1) <- sub(" ", '_', colnames(df1))
或者另一种选择是 chartr
colnames(df1) <- chartr( ' ', '_', colnames(df1))
或者另一种选择是 rename_all
和 tidyverse
library(tidyverse)
df1 %>%
rename_all(~ str_replace(., ' ', '_'))
注意:gsub
首先在这里回答。
可以把列名读成colnames
,把空格换成gsub
再放回列名,写成:
colnames(matrix)=gsub(" ", "_", colnames(matrix), fixed = TRUE)