Чтобы ответить на ваш конкретный вопрос, вы можете создать очень простую функцию, подобную этой:
# Your function here takes as input the dataframe name (df) and formats the predefined column (Period)
new_function <- function(df){
df$Period <- format(df$Period, "%b-%y")
return(df)
}
, а затем запустить
df1 <- new_function(df1)
df2 <- new_function(df2)
для каждого из ваших фреймов данных (в вашем примере *Например, 1007 * df1 будет kpidataRM ).Если вы хотите включить столбец как переменную в свою функцию, вы можете написать его так:
# Your function here takes as input the dataframe name (df) and column name (col) and formats it.
new_function2 <- function(df, col){
df[[col]] <- format(df[[col]], "%b-%y")
return(df)
}
Однако я бы сказал, что в данном случае это не лучший подход, так какПохоже, вы только хотите отформатировать набор столбцов из набора данных, определенным образом.Вместо этого я бы предложил, в точности как Роланд , составить список фреймов данных и перебрать каждый элемент.Простой пример будет выглядеть следующим образом:
# Push all your dataframes in a list (dflist)
dflist <- list(df1,df2)
# Apply in this list a function that changes the column format (lapply)
dflist <- lapply(dflist, function(x){x[[Period]] <- format(x[[Period]], "%b-%y")})
Надеюсь, это работает для вас.