您的问题不是很清楚。因此有两种解决方案。
任何一种解决方案的开头都是相同的。假设你有这四个数据框:
df1x <- data.frame(v1 = rnorm(50),
v2 = runif(50))
df2x <- data.frame(v3 = rnorm(60),
v4 = runif(60))
df3x <- data.frame(v1 = rnorm(50),
v2 = runif(50))
df4x <- data.frame(v3 = rnorm(60),
v4 = runif(60))
假设您进一步将它们组合成一个列表,类似于您的 data2016,使用 mget 和 ls 并描述匹配它们的模式:
my_list <- mget(ls(pattern = "^df\\d+x$"))
此列表中数据框的名称如下:
names(my_list)
[1] "df1x" "df2x" "df3x" "df4x"
解决方案 1:
假设您想更改数据框的名称:
new_names <- c("june2016", "july2016","aug2016", "sep2016")
然后你可以简单地将new_names分配给names(my_list):
names(my_list) <- new_names
结果是:
names(my_list)
[1] "june2016" "july2016" "aug2016" "sep2016"
解决方案 2:
您想添加 new_names literally 作为“旧”名称的后缀,在这种情况下,您将使用 paste 或 paste0,因此:
names(my_list) <- paste0(names(my_list), "_", new_names)
结果是:
names(my_list)
[1] "df1x_june2016" "df2x_july2016" "df3x_aug2016" "df4x_sep2016"