我目前正在尝试按升序对我的 Dataframe 进行排序。然而,希望我的行被排序为例如“nv1,nv2,nv3,nv 15”而不是“nv1,nv14,nv15,nv2,nv3”。
有办法做到吗?
当使用arrange函数时,我的输出将是
nv1_SRRxxxx
nv100_SRRxxxx
nv12_SRRxxxx
nv13_SRRxxxx
nv144_SRRxxxx
nv151_SRRxxxx
nv16_SRRxxxx
nv173_SRRxxxx
但我希望得到
nv1_SRRxxxx
nv12_SRRxxxx
nv13_SRRxxxx
nv16_SRRxxxx
nv100_SRRxxxx
nv141_SRRxxxx
nv151_SRRxxxx
nv173_SRRxxxx
其中根据第一个“_”之前的数字值对行进行排序
3条答案
按热度按时间uxh89sit1#
使用正则表达式和
order
提取数字。假设变量名为
V1
。afdcj2ne2#
am46iovg3#
:)
如果我没有理解错的话,您希望根据字符串中的数字按列排列数据集。
我要做的是从每个字符串中提取 first 数字,将其转换为数字,然后排列列。
在tidyverse中,你可以这样做:
这是一个很好的例子,当它是有益的学习一些regEx ...我不是很擅长。
表达式
^[^\\d].+?(\\d+)
表示要捕获它遇到的第一个数字,尽可能少地匹配它。可能有比这更好的正则表达式,(?:^[^\\d].+?)(\\d+)(?:.*?$)
,但它可以工作。