我从NOAA(CPC统一标准)下载了netcdf格式的每月降水数据。数据以mm / day的形式存储,我需要将每个图层乘以各自月份的计数,以得出该月份的总降水量。例如,1969年9月的图层将乘以30,而2月的图层将乘以28。而且,leap年的问题是必须将2月的图层乘以29。
我尝试了一些代码(请参见下文),但无法正常工作。
prec <- brick(precip.V1.0.mon.mean.nc)
conv <- function(x, ...) {
ifelse(x == c(01, 03, 05, 07, 08, 09, 10, 12),
31 * x,
x,
ifelse(x == c(04, 06, 11),
30 * x,
x,
ifelse(x == 02,
28 * x,
x)))
} # function for the conversion
## pulling out date indices for each month
indices <- as.numeric(format(as.Date(names(prec), format = "X%Y.%m.%d"), format = "%m"))
## applying the function using stackApply
new_prec <- stackApply(prec, indices, fun = conv)
ifelse(x == c(1、2、3、5、7、8、9、10、12),31 * x,x,ifelse(x ==的错误: 未使用的参数(ifelse(x == c(4,6,11),30 * x,x,ifelse(x == 2,28 * x,x)))
当我尝试使用简化版本(例如)ifelse(x == 12,30 * x,x)传递函数时 我收到以下错误
错误:错误(函数(...,deparse.level = 1): 矩阵的行数必须匹配(请参阅参数2)
我想知道是否有人有转换提示。
以下是数据子集的链接:https://fil.email/VahwQq8p