Рассмотрите возможность создания списка фреймов данных и избегайте множества отдельных объектов, заполняющих глобальную среду, поскольку этот пример может распространяться на сотни, а не только на три.Кроме того, при таком подходе вы будете поддерживать один контейнер, способный выполнять массовые операции на всех фреймах данных.
Используя sapply
ниже для символьного вектора, вы создаете именованный список:
samples <- c("A","B","C") # OR unlist(list("A","B","C"))
df_list <- sapply(samples, function(x) data.frame(col1=NA,col2=NA), simplify=FALSE)
# RUN ANY DATAFRAME OPERATION
head(df_list$A)
tail(df_list$B)
summary(df_list$C)
# BULK OPERATIONS
stacked_df <- do.call(rbind, df_list)
stacked_df <- do.call(cbind, df_list)
merged_df <- Reduce(function(x,y) merge(x,y,by="col1"), df_list)
Или, если вам нужно переименовать список
# RENAME LIST
df_list <- setNames(df_list, paste0(samples, "_sumT"))
# RUN ANY DATAFRAME OPERATION
head(df_list$A_sumT)
tail(df_list$B_sumT)
summary(df_list$C_sumT)