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