R gsub应用于少数数据点时出错
我需要删除序列中不断重复的数字R gsub应用于少数数据点时出错,r,regex,gsub,R,Regex,Gsub,我需要删除序列中不断重复的数字 a b Kor 66.73 > 66.73 > 66.73 > 66.73 > 66.73 > 66.73 > 73.42 > 66.73 > 73.42 > 66.73 > 66.73 > 66.73 > 66.73 > 66.73 > 66.73 我需要像下面这样的输出 a b Kor 66.73 > 66.7
a b
Kor 66.73 > 66.73 > 66.73 > 66.73 > 66.73 > 66.73 >
73.42 > 66.73 > 73.42 > 66.73 > 66.73 > 66.73 >
66.73 > 66.73 > 66.73
我需要像下面这样的输出
a b
Kor 66.73 > 66.73 > 66.73 > 66.73 > 66.73 > 66.73 >
73.42 > 66.73 > 73.42 > 66.73 > 66.73 > 66.73 >
66.73 > 66.73 > 66.73
我需要下面的输出
c= 66.73 > 73.42 > 66.73 > 73.42 > 66.73
但是我在输出中得到了错误
66.73 > 73.42 > 66.73.42 > 66.73
我使用了下面的代码
c$c <- gsub("\\b([\\w\\.]+)( > \\1\\b)+","\\1",c$b,perl = T)
c$c您的[\\w\\.]+
模式匹配一个或多个数字、字母或点,并且它可以匹配12.54>中的54
。您需要确保匹配浮点值,同时使点成为图案的必需部分
你可以用
sapply(str_extract_all(gsub("\\b(\\d+\\.\\d+)(?:\\s+>\\s+\\1\\b)+", "\\1", x), "\\d+\\.\\d+"), paste, collapse=" > ")
## => [1] "66.73 > 73.42 > 66.73 > 73.42 > 66.73"
使用gsub(\\b(\\d+\\.\\d+)(:\\s+>\\s+\\1\\b)+,“\\1”,x)
删除所有重复的连续浮点数,使用str\u extract\u all(x1,\\d+\.\\d+”)
可以提取剩下的数字,然后使用子字符串粘贴找到的所有值。Hi Team,有人能帮我解决这个问题吗?请帮助我们帮助您,使用dput
获得一段可复制的代码并与我们共享。您好,Wiktor,在执行代码后,我只得到了“”,@Rperfect,那么您除了发布之外还有其他一些输入。拜托,你好,维克托。谢谢你。它正在工作。但是,对于只有一个值(比如97)的少数代码,输出显示为0,而不是097@Rperfect请提供一个带有失败文本的正则表达式。好的,我试试看。但是我可以知道为什么它显示为0吗?