用查找 table 替换部分文本值?
Replace parts of text values with a lookup table?
我如何根据查找表(名称中的 new.text)替换部分值(df1 中的问题)——这看起来像 df2 中的内容。我假设带有 gsub 的 lapplpy 可以完成这项工作,但无法弄清楚语法!
set.seed(42)
df1 <- data.frame(question = c("Hello - a", "Hello - b", "Goodbye - a", "Goodbye - b"),
variable = rnorm(4))
df1
question variable
1 Hello - a 1.3709584
2 Hello - b -0.5646982
3 Goodbye - a 0.3631284
4 Goodbye - b 0.6328626
names <- data.frame(text = c("Hello", "Goodbye", "Good Morning"),
new.text = c("1", "2", "3"))
names
text new.text
1 Hello 1
2 Goodbye 2
3 Good Morning 3
set.seed(42)
df2 <- data.frame(question = c("1 - a", "1 - b", "2 - a", "2 - b"),
variable = rnorm(4))
df2
question variable
1 1 - a 1.3709584
2 1 - b -0.5646982
3 2 - a 0.3631284
4 2 - b 0.6328626
使用stringr::str_replace_all
-
df1$question <- stringr::str_replace_all(df1$question,
setNames(names$new.text, names$text))
df1
# question variable
#1 1 - a 1.3709584
#2 1 - b -0.5646982
#3 2 - a 0.3631284
#4 2 - b 0.6328626
我如何根据查找表(名称中的 new.text)替换部分值(df1 中的问题)——这看起来像 df2 中的内容。我假设带有 gsub 的 lapplpy 可以完成这项工作,但无法弄清楚语法!
set.seed(42)
df1 <- data.frame(question = c("Hello - a", "Hello - b", "Goodbye - a", "Goodbye - b"),
variable = rnorm(4))
df1
question variable
1 Hello - a 1.3709584
2 Hello - b -0.5646982
3 Goodbye - a 0.3631284
4 Goodbye - b 0.6328626
names <- data.frame(text = c("Hello", "Goodbye", "Good Morning"),
new.text = c("1", "2", "3"))
names
text new.text
1 Hello 1
2 Goodbye 2
3 Good Morning 3
set.seed(42)
df2 <- data.frame(question = c("1 - a", "1 - b", "2 - a", "2 - b"),
variable = rnorm(4))
df2
question variable
1 1 - a 1.3709584
2 1 - b -0.5646982
3 2 - a 0.3631284
4 2 - b 0.6328626
使用stringr::str_replace_all
-
df1$question <- stringr::str_replace_all(df1$question,
setNames(names$new.text, names$text))
df1
# question variable
#1 1 - a 1.3709584
#2 1 - b -0.5646982
#3 2 - a 0.3631284
#4 2 - b 0.6328626