如何从字母和字母自动构造“A”=“a”、“B”=“b”等形式的表达式?

我最近读的解决方案,以在R4DS锻炼。它包括以下代码:

library(stringr)
replacements <- c("A" = "a", "B" = "b", "C" = "c", "D" = "d", "E" = "e",
                  "F" = "f", "G" = "g", "H" = "h", "I" = "i", "J" = "j", 
                  "K" = "k", "L" = "l", "M" = "m", "N" = "n", "O" = "o", 
                  "P" = "p", "Q" = "q", "R" = "r", "S" = "s", "T" = "t", 
                  "U" = "u", "V" = "v", "W" = "w", "X" = "x", "Y" = "y", 
                  "Z" = "z")
lower_words <- str_replace_all(words, pattern = replacements)
head(lower_words)

我发现replacements载体的构建特别令人反感。没有人应该做那么多打字,特别是考虑到 R 有向量lettersLETTERS内置。

有没有办法自动构造这样的向量?我尝试使用表达式对象来创建它,但我发现我们甚至无法运行代码,quote("A" = "a")因为"A" = "a"它不是语法上有效的表达式。我也尝试使用字符串来创建它,例如使用 的一些技巧paste,但那些没有用,因为我们需要等号不是字符串。我最接近的猜测是substitute(c(a=b), list(a=LETTERS, b=letters)),但输出显然不正确。

回答

letters/LETTERS, 使用

replacements <- setNames(letters, LETTERS)


以上是如何从字母和字母自动构造“A”=“a”、“B”=“b”等形式的表达式?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>