Ключ создает список, используя ls
и шаблон. Затем с помощью get
вы можете получить доступ к каждому фрейму данных в списке. После этого вы можете создать свой цикл.
Это полный код:
library(lubridate)
# dummy data
cate_no1<-data.frame('date_id'=c(20180301,20180401,20180501, 20180501), 'var2'=1:4)
cate_no2<-data.frame('date_id'=c(20180601,20180701,20180801, 20180701), 'var2'=2:5)
cate_no26<-data.frame('date_id'=c(20180901,20181001,20181101, 20181001), 'var2'=3:6)
# list of variables in the environment using pattern cate_n
mylist1<-ls(pattern='cate_n')
# for loop
for (i in 1:length(mylist1))
{
prefix<-gsub("cate_", "", mylist1[i], fixed = TRUE) # set prefix for output dataframe
df<-get(mylist1[i]) # get input dataframe from the list
df<-data.frame(table(df$date_id)) # get table of frequencies
df$Var1<-ymd(as.character(df$Var1)) # transform to date
assign(paste0(prefix, '_date_count'), df) # create output dataframes
rm(df)
}