use*_*667 6 reverse r palindrome
你如何反转R中的一串数字?
例如,我有一个大约1000个六位数字的向量,我想知道它们是否是回文.我想创建一个完全相反的第二组,所以我可以做一个对决.
Gre*_*now 12
它实际上是你正在测试的数字的十分表示,而不是数字本身(255是十六进制和二进制的古代综合症,但不是十进制).
您可以使用模式匹配相当简单地完成此操作:
> tmp <- c(100001, 123321, 123456)
> grepl( '^([0-9])([0-9])([0-9])\\3\\2\\1$', tmp )
[1] TRUE TRUE FALSE
>
Run Code Online (Sandbox Code Playgroud)
您可以将数字转换为字符,拆分为单个字符(strsplit),反转每个数字(sapply和rev),然后将值粘贴在一起(粘贴)并转换回数字(as.numeric).但我认为如果你只对6位数的古代物质感兴趣,上面会更好.
我不认为rev完全可以。它反转向量的元素,而问题是如何扭转元件在载体中。
> nums <- sapply(1:10,function(i)as.numeric(paste(sample(1:9,6,TRUE),collapse="")))
> nums
[1] 912516 568934 693275 835117 155656 378192 343266 685182 298574 666354
> sapply(strsplit(as.character(nums),""), function(i) paste(rev(i),collapse=""))
[1] "615219" "439865" "572396" "711538" "656551" "291873" "662343" "281586" "475892" "453666"
Run Code Online (Sandbox Code Playgroud)