我有一个名为df
的数据框,其列名称采用以下格式:
"A Agarwal" "A Agrawal" "A Balachandran"
"A.Brush" "A.Casavant" "A.Chakrabarti"
他们是名字的第一个名字。但是,其中一些是用空格分隔的,而另一些则是一个句号。我需要用句点替换句点。(第一列称为author.ID
,我将其从以下代码中排除)
我尝试了以下代码,但结果的代码名称仍未改变。
colnames(df[, -1]) = gsub("\\s", "\\.", colnames(df[, -1]))
colnames(df[, -1]) = gsub(" ", ".", colnames(df[, -1]))
我做错了什么?
感谢。
答案 0 :(得分:1)
请注意,df[, -1]
会获取除第一列以外的所有行和列(请参阅this reference)。要修改列名称,您应该使用colnames(df)
。
要用点替换第一个文字空间,请使用
colnames(df) <- sub(" ", ".", colnames(df), fixed=TRUE)
如果可以有多个空格,请使用正则表达式:
colnames(df) <- sub("\\s+", ".", colnames(df))
如果您需要删除列名称中包含单个点的所有空格序列,请使用gsub
:
colnames(df) <- gsub("\\s+", ".", colnames(df))