我是R的新手。我试图在R中提供一个代码,该代码可以帮助我转换带有方括号的字符串,例如以下字符串:
( 65 97) ( 80 12) ( 82 832) (108 23)
Run Code Online (Sandbox Code Playgroud)
变成这样的格式:
65:97 80:12 82:832 108:23
Run Code Online (Sandbox Code Playgroud)
我想我应该找到每个方括号之间的空间位置,并用:代替,然后再删除方括号,但是我不知道如何。有人可以帮忙吗?
您可以使用gsub反向引用,如下所示:
gsub("\\( *(\\d+) +(\\d+) *\\)", "\\1:\\2", "( 65 97) ( 80 12) ( 82 832) (108 23)")
# [1] "65:97 80:12 82:832 108:23"
Run Code Online (Sandbox Code Playgroud)
\\( *(\\d+) +(\\d+) *\\)匹配括号单元,其中有两个数字,并用一个或多个空格分隔。*这里是匹配括号和数字之间的可选空格。\\1并\\2引用第一个和第二个捕获组(即两个)(\\d+)并使用插入的冒号对其进行格式化。