Как использовать lapply с grep для удаления столбцов в списке
За свою жизнь я не могу понять, как lapply
через мой список, чтобы grep имена столбцов.
Вот код, который работает на одном кадре данных:
tl1 <- trend1[,grep("Date|AIR|LSL",colnames(trend1))]
Но у меня есть trend1
через trend12
, Как мне превратить это в список и применить это grep
каждому элементу списка получить tl1 через tl12 фреймы данных?
В качестве альтернативы я хотел бы использовать цикл for.
1 ответ
Если у вас уже есть trend1
через trend12
DataFrame в вашей среде R, вы можете поместить их все в один список и использовать lapply
чтобы удалить ненужные столбцы:
# mget gets the dataframes whose names are returned by ls
list_of_dfs <- mget(ls(pattern="trend\\d{1,2}"))
# loop through the dataframes and make the changes
new_dfs <- lapply(list_of_dfs, function(df) df[,grep("Date|AIR|LSL",colnames(df))])
Надеюсь, это поможет.