Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从文件名中提取日期并使其成为变量_R_Regex_Date_Gsub_Stringr - Fatal编程技术网

R 从文件名中提取日期并使其成为变量

R 从文件名中提取日期并使其成为变量,r,regex,date,gsub,stringr,R,Regex,Date,Gsub,Stringr,我有一个名为“MERRA2_300.tavg1_2d_flx_Nx.20050101.SUB.nc”的文件列表,我需要使用一个循环组合所有这些文件,并在新的组合数据集中创建一个变量,该变量用与原始文件对应的日期描述每个观测值。除日期本身外,所有文件的名称都完全相同(即,下一个文件是MERRA2_300.tavg1_2d_flx_Nx.20050102.SUB.nc) 我编写了一个循环,如下所示 wi <- list.files(path = ".") final_data <- d

我有一个名为“MERRA2_300.tavg1_2d_flx_Nx.20050101.SUB.nc”的文件列表,我需要使用一个循环组合所有这些文件,并在新的组合数据集中创建一个变量,该变量用与原始文件对应的日期描述每个观测值。除日期本身外,所有文件的名称都完全相同(即,下一个文件是MERRA2_300.tavg1_2d_flx_Nx.20050102.SUB.nc)

我编写了一个循环,如下所示

wi <- list.files(path = ".")

final_data <- data.frame(matrix(ncol = 7, nrow = 0)) 
colnames(final_data) <- c("PRECTOTCORR", "TLML", "lat", "lon", "time", "time_bnds", "date") 

for (i in wi) {
  nc<-open.nc(i)
  dat<-read.nc(nc) 

  date <- i

  dat$date <- date

  final_data <- rbind(final_data, dat)
}

wi作为对我自己问题的一点回答,gsub命令可以很好地从文件名的一部分创建一个新变量

wi1 <- "MERRA2_300.tavg1_2d_flx_Nx.20050101.SUB.nc"
nc1 <- open.nc(wi1)
dat1 <- read.nc(nc1)
dat1$date <- gsub("MERRA2_300.tavg1_2d_flx_Nx.|.SUB.nc", "", "MERRA2_300.tavg1_2d_flx_Nx.20050101.SUB.nc")

wi1作为对我自己问题的一点回答,gsub命令可以从文件名的一部分创建一个新变量

wi1 <- "MERRA2_300.tavg1_2d_flx_Nx.20050101.SUB.nc"
nc1 <- open.nc(wi1)
dat1 <- read.nc(nc1)
dat1$date <- gsub("MERRA2_300.tavg1_2d_flx_Nx.|.SUB.nc", "", "MERRA2_300.tavg1_2d_flx_Nx.20050101.SUB.nc")

wi1在这里你能依靠什么?日期是否总是在文件名中的同一位置?它们是否总是采用相同的格式(8个数字:年、月、日)?是的,除了日期外,文件名都是完全相同的。我应该澄清一下,我会将其添加到原始问题中,是的,它们始终采用YYYYMMDD格式,您在这里可以依靠什么?日期是否总是在文件名中的同一位置?它们是否总是采用相同的格式(8个数字:年、月、日)?是的,除了日期外,文件名都是完全相同的。我应该澄清一下,我会把它添加到原始问题中,是的,它们的格式总是YYYYMMDD