将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
不可用的对象,但通用的想法应该适合您。
我正在尝试使用 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
不可用的对象,但通用的想法应该适合您。