在R中的子函数中使用两列
我有一个包含两个文本列的数据表。我需要使用列b来确定将列a中的哪些字母替换为“x” 我可以使用for循环来完成它,如下代码所示。但是,我的实际数据集有250000多行,因此脚本需要很长时间。有没有更有效的方法?我曾考虑过拉皮,但没能改变主意在R中的子函数中使用两列,r,substring,R,Substring,我有一个包含两个文本列的数据表。我需要使用列b来确定将列a中的哪些字母替换为“x” 我可以使用for循环来完成它,如下代码所示。但是,我的实际数据集有250000多行,因此脚本需要很长时间。有没有更有效的方法?我曾考虑过拉皮,但没能改变主意 DT <- data.table(a = c("ABCD","ABCD","ABCD","ABCD"), b = c("A","B","C", "D")) DT$c <- "" for (i in 1 : NROW(DT)){ DT[
DT <- data.table(a = c("ABCD","ABCD","ABCD","ABCD"), b = c("A","B","C", "D"))
DT$c <- ""
for (i in 1 : NROW(DT)){
DT[i]$c <- sub(DT[i,b], "x", DT[i,a])
}
DT这里有一种使用tidyverse的方法
library(tidyverse)
DT <- data.table::data.table(a = c("ABCD","ABCD","ABCD","ABCD"), b = c("A","B","C", "D"))
DT %>%
mutate(new_vec = str_replace_all(string = a,pattern = b,replacement = "X"))
库(tidyverse)
DT%
突变(new_vec=str_replace_all(string=a,pattern=b,replacement=“X”))
谢谢!str_replace_在很短的时间内就完成了我所需要的一切!