Как отбросить столбцы, соответствующие определенному шаблону, поверх списка фреймов данных - PullRequest
0 голосов
/ 18 июня 2020

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

Я написал функцию:

drop_duplicated_columns <- function (df) {
  lapply(df, function(x) {
    x <- x %>% select(-contains(".1"))
    x
  })
  return(df)
}

Однако она не работает. Есть идеи, почему?

1 Ответ

2 голосов
/ 18 июня 2020

Один из простых способов решить эту проблему - сначала создать функцию, которая работает для одного data.frame, а затем сопоставить эту функцию со списком

library(tidyverse)

drop_duplicated_columns <- function(df) {
  df %>% 
    select(-contains(".1"))
}

Или даже лучше

drop_duplicated_columns <- . %>% 
  select(-contains(".1"))

Использование в каналах, объедините его с картой

list_dfs <- list(mtcars,mtcars)

list_dfs %>% 
  map(drop_duplicated_columns)

Если вам нужна только одна функция, вы можете создать новый канал, используя код функционирования, который вы тестировали ранее

drop_duplicated_columns_list <- . %>%
  map(drop_duplicated_columns)


list_dfs %>% 
  drop_duplicated_columns_list()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...