R语言:如何在10位字符串的第4与第5字符间添加空格?
解决R语言字符串插入空格的问题
你的问题出在原代码逻辑完全不对:你写的gsub("\\s{2,}", " ", df$Column)是把连续多个空格替换成单个空格,但原始数据里根本没有空格,所以这个操作不会产生任何变化。
要在10位字符串的第4位和第5位之间插入空格,用正则表达式的捕获组就能精准定位位置,正确代码如下:
df <- data.frame( Column = c("0101100000", "2201205000") ) # 插入空格的正确写法 df$Column1 <- gsub("^(.{4})(.*)$", "\\1 \\2", df$Column) # 查看结果 df
运行后得到的目标格式结果:
Column Column1 1 0101100000 0101 100000 2 2201205000 2201 205000
正则表达式说明:
^:匹配字符串开头(.{4}):捕获前4个任意字符,作为第一个分组(用\\1引用)(.*):捕获剩余所有字符,作为第二个分组(用\\2引用)\\1 \\2:将两个分组用空格拼接,实现插入效果
如果确认所有字符串都是固定10位,也可以用substr函数拼接,写法更直观:
df$Column1 <- paste0(substr(df$Column, 1, 4), " ", substr(df$Column, 5, 10))
内容的提问来源于stack exchange,提问作者silent_hunter
相关产品推荐
相关产品推荐

