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

标签 r string

我正在 R 中构建一个函数,该函数将一个字符串(如“ABCDEFG”)和一个矩阵作为输入,并根据矩阵将字符串中的每个字符转换为另一个字符串。

我试过的代码是这样的:

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

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

这个函数根据第一个函数中生成的矩阵对字符串中的字符进行解码:
decoder <- function(message, matrix) {
   message = tolower(message)
   for (i in 1:13){
      message = gsub(matrix[1,i], matrix[2,i], message)
   }
   return(message)
}

我得到的结果是这样的(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"
> 

它应该将“wfupksal”变成“ksalwfup”。

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

示例:如果我们以上面的矩阵“x”为例,字符串“hey how are you”应该转换为“cib crk uoi bra”。在这种情况下,字符串中第一行中的所有字符都将更改为第二行中的字符,反之亦然。

R中有一个函数可以反转字符串中的字符吗?

最佳答案

不清楚条件,可能

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

关于r - 如何翻译字符串中的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54487048/

相关文章:

html - 如何从 <span> 和 </span> 之间的 html 中检索数据

r - 如何在R中为X轴设置双标签?

r - 忽略 ggplot2 boxplot + faceting + "free"选项中的异常值

regex - 通过查找/替换 (Ctrl+F) 删除 Eclipse 代码编辑器中的空行

javascript - 将 json 格式变量转换为 javascript 数组

java - 如何将不同名称的字符串添加在一起

c - 通过引用将字符串数组传递给 C 函数 - 无效指针

r - 在 R 中使用粘贴文本中的上标(对于多个值的向量)

R:ddply重复年度累计数据

C# - 如何使用制表符正确缩进字符串数据?