我有这根线
D = c("0" , "11", "12", "13", "14", "15", "16", "21", "22", "23", "24", "25", "26", "31", "32", "33", "34", "35", "36", "41", "42", "43", "44","45", "46","51","52", "53", "54", "55", "56", "61", "62", "63", "64", "65", "66")
字符串
1.如果我想删除那些小于30的字符而不将字符串转换为数字,我应该怎么做?
1.如果我想根据单元号重新排序字符串(意味着所有最后1的字符串都在最后2的字符串之前,等等,例如31,41,51,61,32,42等等,应该是哪个操作?
谢啦,谢啦
6条答案
按热度按时间3wabscal1#
您不必转换为数字,
D[D >= 30]
工作正常。>=
也适用于字符向量,排序取决于您的语言环境。查看?Comparison
了解更多详情。字符串
对于排序,这将起作用(但可能只有当您有2位数的数字时):
型
str_sub
:型
sqxo8psd2#
不知道我是否遵循你的逻辑,但这个解决方案怎么样?
字符串
正则表达式代码基本上是以1/2开头,后跟数字或0的任何代码。它需要
stringr
软件包9(tidyverse
的一部分)。你可以使用baseR,但要习惯tidyverse,它更好(base R将是grepl(pattern,string)
)否则我会def去D[D<30]
,但这可能是作弊iaqfqrcu3#
请检查下面的代码
字符串
创建于2023-07-14带有reprex v2.0.2
型
ecfdbz9o4#
1.)可以通过比较操作
!=
来完成,该操作不进行数字转换(对于数字字符串<= 2位)。2.)是一种排序操作,其内部可能依赖于数字或ASCII码表字母排序的转换。
字符串
bvpmtnay5#
另一种提取第二个数字的方法是将
D
除以10并使用余数。下面是它的样子:字符串
k10s72fa6#
regex的另一个选择。任何数字3-9后面跟着另一个数字0-9。
字符串