R- используя gsub в udf - PullRequest
       6

R- используя gsub в udf

0 голосов
/ 29 января 2019

я пытаюсь создать udf, чтобы найти и заменить несколько разных строк в нескольких фреймах данных.Пример:

x <- data.frame(a = c("AA","BB","CC"))
y <- data.frame(b = c("AB","BC","CD"))

Если я выполняю вызовы вручную (как показано ниже), все работает нормально

x$a %<>% 
  gsub("A", "", .) %>% 
  gsub("B", "", .)

, чтобы дать мне - ("", "", "CC") и ("","C","CD") соответственно

Но если я делаю это в UDF, вот так:

col <- function(var) {
var %<>% 
  gsub("A", "", .) %>% 
  gsub("B", "", .)
}

col(x$z)

Это не работает.Есть ли причина, почему это так?

1 Ответ

0 голосов
/ 29 января 2019

вам необходимо присвоить его столбцу, как показано ниже

y$b = col(y$b)

Если вы просто вызовете col(y$b), он не сохранит его в фактическом фрейме данных y из-за области действия функции, т.е.var доступен только в функции col, поэтому, если вы хотите вывести var из функции col, вам нужно присвоить его локальной переменной

...