Применение нескольких функций к одному столбцу - PullRequest
0 голосов
/ 08 октября 2018

У меня есть четыре функции: clean, clean2, cleanFun и trim.В настоящее время я применяю функции к одному столбцу, вот так.

library(tidyverse)
library(data.table)


py17$CE.Finding.Description <- clean(py17$CE.Finding.Description)
py17$CE.Finding.Description  <- clean2(py17$CE.Finding.Description)
py17$CE.Finding.Description  <- cleanFun(py17$CE.Finding.Description)
py17$CE.Finding.Description  <- trim(py17$CE.Finding.Description)

Этот процесс делает свое дело, но я должен скопировать и вставить это несколько раз, и я в конечном итоге хотел бы расширить это на несколько столбцов.

На данный момент, я быЯ хотел бы сэкономить время и добавить функцию применения, но я не уверен, как создать эту функцию применения.Я пытался создать это.

maxclean <- function(cleaner) {
                c(clean(cleaner), clean2(cleaner), cleanFun(cleaner), trim(cleaner))
                 }


py17$CE.Finding.Description <- sapply(py17$CE.Finding.Description, maxclean)

После этой попытки я просто получаю

Error in `$<-.data.frame`(`*tmp*`, CE.Finding.Description, value = c(NA,  : 
  replacement has 4 rows, data has 4318

Я не получаю никаких ошибок при этом.Куда я в этом ошибаюсь?

1 Ответ

0 голосов
/ 08 октября 2018

Ваша maxclean функция должна принимать те же аргументы, что и отдельные функции.В твоем случае - вектор.И затем вызывать каждую функцию подряд.Как это:

maxclean <- function(x) {
            x <- clean(x)
            x <- clean2(x)
            x <- cleanFun(x)
            x <- trim(x)
            return(x)
            }
...