用另一个匹配的值替换字符串中的值

Replace values in String with matching values from another

我得到以下信息:

text <- c("RREPLACE EACH WITH NUMBER FROM LETTERFREQ")

和给定的:

lf <- 1 / 100 * c(
  A = 6.756, B = 1.234, C = 2.302, D = 3.518, E = 10.508, F = 1.843, G = 1.667,
  H = 5.041, I = 5.763, J = 0.127, K = 0.639, L = 3.330, M = 1.990, N = 5.583,
  O = 6.210, P = 1.596, Q = 0.079, R = 4.953, S = 5.234, T = 7.492, U = 2.282,
  V = 0.809, W = 1.952, X = 0.124, Y = 1.633, Z = 0.061, ` ` = 17.272)

我的目标是将文本中的每个字母替换为与 lf 中的数值匹配的数字,以便计算总和。

我创建了明文:

plainte <- strsplit(text, "")[[1]]

但我从此迷路了。如何将文本中的每个字母与相应的数值匹配?

你可以使用 match

lf[match(plainte, names(lf))]

计算总和:

sum(lf[match(plainte, names(lf))])

给出:

[1] 2.79333