gsub 不在 colnames 上工作?

gsub not working on colnames?

我有一个名为 df 的数据框,其列名格式如下:

  "A Agarwal"                   "A Agrawal"                   "A Balachandran"        
"A.Brush"                     "A.Casavant"                  "A.Chakrabarti"           

他们是名字的首字母和姓氏。但是,其中一些以 space 分隔,而另一些则以句点分隔。我需要用句号替换句号。(第一列称为author.ID,我将其排除在以下代码之外)

我尝试了以下代码,但生成的 colnames 仍然没有改变。

  colnames(df[, -1]) = gsub("\s", "\.", colnames(df[, -1]))
  colnames(df[, -1]) = gsub(" ", ".", colnames(df[, -1]))

我做错了什么?

谢谢。

请注意 df[, -1] 获取除第一列以外的所有行和列(参见 this reference)。为了修改列 names 你应该使用 colnames(df).

要用点替换第一个文字 space,请使用

colnames(df) <- sub(" ", ".", colnames(df), fixed=TRUE)

如果可以有多个白色space,使用正则表达式:

colnames(df) <- sub("\s+", ".", colnames(df))

如果您需要删除列名称中带有单个点的所有 whitespaces 序列,请使用 gsub:

colnames(df) <- gsub("\s+", ".", colnames(df))