【问题标题】:Using two columns in the sub function in R在 R 的子函数中使用两列
【发布时间】:2023-03-19 11:39:01
【问题描述】:

我有一个包含两个文本列的数据表。我需要使用列 b 来确定将列 a 中的哪些字母替换为“x”。

我可以使用 for 循环来完成,如下面的代码所示。但是我的实际数据集有 250,000 多行,因此脚本需要很长时间。有没有更有效的方法来做到这一点?我考虑过 lappy,但无法理解它。

 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])

}

【问题讨论】:

    标签: r substring


    【解决方案1】:

    这是使用 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"))
    

    【讨论】:

    • 谢谢! str_replace_all 在很短的时间内完成了我所需要的!
    猜你喜欢
    • 2021-01-13
    • 1970-01-01
    • 2016-09-07
    • 1970-01-01
    • 2020-02-15
    • 1970-01-01
    • 2016-05-22
    • 2015-09-16
    • 2019-07-13
    相关资源
    最近更新 更多