【发布时间】:2017-04-14 06:37:27
【问题描述】:
我有一个名为 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]))
我做错了什么?
谢谢。
【问题讨论】:
-
试试
colnames(df) <- sub("\\s+", ".", colnames(df)) -
太棒了。除了gsub之外,两者之间有什么区别?
+是什么意思? -
或使用
fixed = TRUE:gsub(" ", ".", "A Agarwal", fixed = TRUE) -
我认为如果使用
\s或\s+或fixed=TRUE带空格并不重要 - 都可以调整(如果您只需要将 1 个文字空格替换为一个点,是的,应该使用sub(" ", ".", colnames(df), fixed=TRUE))。[,-1]表示您获得除第一列之外的所有行和所有列