我有一列产品,在产品说明中的字符串之间有可变长度的空白。
以下是其中一种产品的示例:
SELECT a.id, a.name, count(a.letter) letter_count, avg(a.number) avg_number
FROM( SELECT
t1.id,
t1.name,
t3.letter,
t2.number--,
FROM
table1 t1
INNER JOIN
table2 t2
ON t2.t1_id = t1.id
INNER JOIN
table3 t3
ON t3.t1_id = t1.id
AND t3.letter IN ('a', 'b', 'c')
GROUP BY
t1.id, t1.name, t3.letter, t2.number) a GROUP BY id, a.name
ORDER BY
letter_count DESC,
avg_number DESC
我希望字符串看起来像这样,其中字符串之间只有一个空格:
“这是产品列中的产品”
这可以实现
答案 0 :(得分:1)
要替换任何重复的空格\\s
(连续多个),请在有两个或多个空格\\s{2,}
的任何时间匹配,并仅用一个空格替换。 {2,}
表示匹配重复大于2。我们可以设置{2,7}
这样的最大重复次数。
gsub("\\s{2,}", " ", "string with many spaces")
要对列名执行此操作,只需将要替换的字符串替换为colnames(df)
。