将colnames文本字符串解析为R中的表达式

Parsing colnames text string as expression in R

我正在尝试使用 R 中的“赋值”函数在 for 循环中创建大量数据框。我想使用 colnames 函数在数据框中设置列名。我试图模拟的代码如下:

county_tmax_min_df <- data.frame(array(NA,c(length(days),67))) 
colnames(county_tmax_min_df) <- c('Date',sd_counties$NAME) 
county_tmax_min_df$Date <- days

到目前为止我在循环中的代码如下所示:

file_vars = c('file1','file2')
days <- seq(as.Date("1979-01-01"), as.Date("1979-01-02"), "days")

f = 1
for (f in 1:2){
  assign(paste0('county_',file_vars[f]),data.frame(array(NA,c(length(days),67))))
}

我需要能够像我在上述语句中所做的那样设置列名。我该怎么做呢?我认为它需要像这样,但我不确定文本部分的内容。我需要的最终结果只是一堆数据框。任何帮助都会很棒。谢谢。

expression(parse(text = ))

您可以在 中设置名称 赋值,例如:

file_vars = c('file1', 'file2')
days <- seq.Date(from = as.Date("1979-01-01"), to = as.Date("1979-01-02"), by = "days")

for (f in seq_along(file_vars)) {
    assign(x = paste0('county_', file_vars[f]),
           value = {
               df <- data.frame(array(NA, c(length(days), 67)))
               colnames(df) <- paste0("fancy_column_", 
                                      sample(LETTERS, size = ncol(df), replace = TRUE))
               df
           })
}

{} 中时,您可以使用 colnames(df)setNames 以任何需要的方式分配列名。在您的第一段代码中,您指的是 sd_counties 不可用的对象,但通用的想法应该适合您。