基于单个单元格中的%symbol排序-R
我有一个基于单个单元格中的%symbol排序-R,r,regex,sorting,dataframe,R,Regex,Sorting,Dataframe,我有一个data.frame包含如下单元格: df<-as.data.frame(c('10% - 34', '15.5% - 15:4', '18% - 1n9')) df反转元素的正则表达式可能比拆分和重新粘贴更有效 sub("(.+%) - (.*)", "\\2 - \\1", df[[1]]) # [1] "34 - 10%" "15:4 - 15.5%" "1n9 - 18%" 这里我们捕获模式参数中的第一个和最后一个元素,然后在替换参数中交换它们 Regex解释
data.frame
包含如下单元格:
df<-as.data.frame(c('10% - 34', '15.5% - 15:4', '18% - 1n9'))
df反转元素的正则表达式可能比拆分和重新粘贴更有效
sub("(.+%) - (.*)", "\\2 - \\1", df[[1]])
# [1] "34 - 10%" "15:4 - 15.5%" "1n9 - 18%"
这里我们捕获模式
参数中的第一个和最后一个元素,然后在替换
参数中交换它们
Regex解释由以下人员提供:
(.+)
是第一个捕获组<代码>+
匹配任何字符(行终止符除外)+
是一个量词。它在一次和无限次之间匹配,尽可能多地匹配,根据需要回馈(贪婪)%
按字面意思匹配字符%(区分大小写)<代码>-按字面意思匹配字符-
(区分大小写)
(.*)
是第二个捕获组<代码>*匹配任何字符(行终止符除外)*
是一个量词。它在零次和无限次之间匹配,尽可能多地匹配,根据需要回馈(贪婪)替换字符串
“\\2-\\1”
首先放置第二个捕获组(\\2
),然后放置文字-
,然后放置第一个捕获组(\\1
)。有关更多信息,请参见help(regex)
。如果排序基于百分比值的存在,最好将其包含在标题中以明确说明。可能重复