Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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_Loops_Apply - Fatal编程技术网

R 每次函数参数不同时,如何循环多个文件?

R 每次函数参数不同时,如何循环多个文件?,r,loops,apply,R,Loops,Apply,我正试图从一系列.nc文件中提取海面温度数据。 因此,我有一个文件夹,其中包含30个下载的.nc文件,所有文件都是“1981.nc”、“1982.nc”等 但是,我不想单独加载它们,而是想在每个文件上循环,计算每个文件的平均温度,这样在最后我就有30个温度值 问题是每个文件的日期参数必须更改。我想加入一些类似于年的东西,这有用吗 # Get filenames filenames <- dir(pattern =".nc") # Mean SSTs m.ssts <- NULL

我正试图从一系列.nc文件中提取海面温度数据。 因此,我有一个文件夹,其中包含30个下载的.nc文件,所有文件都是“1981.nc”、“1982.nc”等

但是,我不想单独加载它们,而是想在每个文件上循环,计算每个文件的平均温度,这样在最后我就有30个温度值

问题是每个文件的日期参数必须更改。我想加入一些类似于
年的东西,这有用吗

# Get filenames
filenames <- dir(pattern =".nc")

# Mean SSTs
m.ssts <- NULL

# Loop through filenames
for (i in filenames) {
  # Get year (assuming form of filename is, e.g., 1981.nc)
  year <- sub(".nc", "", i)

  # Do whatever this function does
  ssts <- extractOISSTdaily(i, "C:\\Users\\Desktop\\lsmask.oisst.v2.nc",
                           lonW=350, lonE=351, latS=52, latN=56,
                           date1=paste(year, "-11-23", sep = ""), 
                           date2=paste(year, "-12-31", sep = ""))
  # Profit!
  m.ssts <- c(m.ssts, mean(ssts))
}
#获取文件名

文件名你好,谢谢你的回答,但它还没有工作。当我应用你的循环时,我得到了一个60个NAs的列表。请注意,我只需要删除计算平均值的NAs。非常感谢@马纳萨莫勒很高兴它成功了!我只是添加了一些文本来解释代码。
# Get filenames
filenames <- dir(pattern =".nc")

# Mean SSTs
m.ssts <- NULL

# Loop through filenames
for (i in filenames) {
  # Get year (assuming form of filename is, e.g., 1981.nc)
  year <- sub(".nc", "", i)

  # Do whatever this function does
  ssts <- extractOISSTdaily(i, "C:\\Users\\Desktop\\lsmask.oisst.v2.nc",
                           lonW=350, lonE=351, latS=52, latN=56,
                           date1=paste(year, "-11-23", sep = ""), 
                           date2=paste(year, "-12-31", sep = ""))
  # Profit!
  m.ssts <- c(m.ssts, mean(ssts))
}