Использование двух столбцов в подфункции в R - PullRequest
0 голосов
/ 28 мая 2020

У меня есть таблица данных с двумя текстовыми столбцами. Мне нужно использовать столбец b , чтобы определить, какие буквы заменить в столбце a на «x».

Я могу сделать это, используя для l oop, как в приведенном ниже коде. однако мой фактический набор данных содержит более 250 000 строк, поэтому сценарий требует времени. Есть ли более эффективный способ сделать это? Я подумала, что это прилично, но никак не могла осознать это.

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

}

1 Ответ

1 голос
/ 28 мая 2020

Вот один из подходов с использованием тидиверса

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"))
...