Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中的子函数中使用两列_R_Substring - Fatal编程技术网

在R中的子函数中使用两列

在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[

我有一个包含两个文本列的数据表。我需要使用列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[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_在很短的时间内就完成了我所需要的一切!