我正在尝试在循环中使用过滤器功能,因此将单独考虑输入文件的每个网格单元。我正在做的是
public ActionResult SomeAction()
{
var predefinedRedirect = MaybeRedirect();
if (predefinedRedirect != null)
return predefinedRedirect;
// The rest of the code
}
private ActionResult MaybeRedirect()
{
if (Session["level"] == null)
return RedirectToAction("Home", "Whatever");
if ((int)Session["level"] == 1)
return RedirectToAction("Choose", "Whatever");
... // other conditions here
return null;
}
读取具有115个时间步长和128x64网格分辨率的netcdf文件。现在,我要做的是计算每个网格单元随时间的变化,这在以下几行中效果很好:
library(ncdf4)
library(xts)
model <- nc_open("test.nc")
data <- ncvar_get(model, "varname")
data <- data[,,39:153]
但是,当我尝试包括这样的过滤器功能时:
var<-matrix(0,128,64)
for (i in 1:128){
for (j in 1:64){
var[i,j]<-var(data,na.rm=T)
}
}
我得到了错误
var_filter<-matrix(0,128,64)
for (i in 1:128){
for (j in 1:64){
var_filter[i,j]<-var(filter(data, rep(1/30,30)),na.rm=T)
}
}
stackoverflow上的其他一些帖子建议尝试类似的方法
Error in ts(x) : invalid time series parameters specified
Calls: var ... is.data.frame -> filter -> as.ts -> as.ts.default -> ts
但这给了我新的错误
position <- xts(rowSums(data, na.rm=TRUE), index(data))
我对r的知识不是很扎实。这到底是什么意思?我该如何解决呢?