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))
我有一个名为 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))