如何翻译字符串中的所有字符

Cod*_*r88 4 string r

我正在R中构建一个函数,其中函数将采用字符串(如"ABCDEFG")和矩阵作为输入,并根据矩阵将字符串中的每个字符转换为另一个字符串.

我试过的代码是这样的:

plugboard <- function() {
    matrix(sample(letters, 26, 
                  replace = FALSE, prob = NULL), 
           nrow = 2, ncol = 13)
}
Run Code Online (Sandbox Code Playgroud)

这是为了生成两行矩阵,其中每列中有两个字母配对在一起.

并且此函数根据第一个函数中生成的矩阵解码字符串中的字符:

decoder <- function(message, matrix) {
   message = tolower(message)
   for (i in 1:13){
      message = gsub(matrix[1,i], matrix[2,i], message)
   }
   return(message)
}
Run Code Online (Sandbox Code Playgroud)

我得到的结果是这样的(x矩阵,m 是字符串):

> x
     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13]
[1,] "w"  "f"  "u"  "p"  "g"  "i"  "j"  "o"  "b"  "q"   "z"   "d"   "c"  
[2,] "k"  "s"  "a"  "l"  "m"  "e"  "n"  "r"  "y"  "t"   "x"   "v"   "h"  
> m = "wfupksal"
> decoder(m,x)
[1] "wfupwfup"
> 
Run Code Online (Sandbox Code Playgroud)

它应该将"wfupksal"变成"ksalwfup".

我的意思是代码应该将第1行中的所有字符转换为第二行中的字符,而在字符串中反之亦然.但我只能做一种方法(将第2行中的所有字符更改为第1行中的字符).

示例:如果我们将上面的矩阵"x"作为示例,则字符串"嘿你好吗"应该转换为"cib crk uoi bra".在这种情况下,字符串中第一行中的所有字符都将更改为第二行中的字符,反之亦然.

R中是否有一个函数来反转字符串中的字符?

akr*_*run 6

也许并不清楚这些条件

v1 <- apply(x, 1, paste, collapse="")
chartr(paste(v1, collapse=""), paste(rev(v1), collapse=""), m)
#[1] "ksalwfup"
Run Code Online (Sandbox Code Playgroud)