这里的困难是您不能get
直接与赋值运算符一起使用,
例如,get(nm) <- value
不会工作。您可以尝试使用assign,但方式略有不同。
假设cn
是您要更改其名称的列号
for(i in 1:13){
nm <- paste0("y", i)
tmp <- get(nm)
colnames(tmp)[cn] <- c("Date.Code")
assign(nm, tmp)
}
话虽如此,解决此问题的一种更简洁的方法是将所有 DF 收集到一个列表中,然后您可以轻松地使用lapply
它们来操作它们。例如:
# collect all of your data.frames into a single list.
df.list <- lapply(seq(13), function(i) get(paste0("y", i)))
# now you can easily change column names. Note the `x` at the end of the function which serves
# as a return of the value. It then gets assigned back to an object `df.list`
df.list <-
lapply(df.list, function(x) {colnames(x)[cn] <- "Date.Code"; x})
最后,搜索这些板[r] data.table
,您将看到许多通过引用更改值和更直接地设置属性的选项。