我是R的新人,因此,如果我的后续问题可能会导致一些愚蠢的话,我会事先道歉,但我真的需要一些专家建议。 我在将其他人的代码应用于我的数据时遇到了问题。作者的代码与他提供的例子非常吻合,在我看来,我正在做我所做的所有正确的步骤,但显然我不是。
主要功能是: grid_boot< - 函数(dat,name,t,ar,grid,bq,c,all,grph) 我应该简单地指定参数然后运行脚本中给出的代码,或者至少对于作者的例子来说这是有效的。 除ar参数外,示例中的所有规范都与我的情况相近。 ar参数是时间序列的自回归顺序,因此它只是您选择的从1到n的数字。我的系列需要一个简单的ar = 1,但如果我运行这个规范的代码,R会给我回复以下错误:
" solve.default(t(x)%*%x)中的错误:系统是计算上的 单数:倒数条件数= 6.07898e-34此外: 警告信息:1:在dat [(ar - k + 2):( n - k + 1)] - dat [(ar - k + 1):( n - k)]:较长的物体长度不是较短的倍数 对象长度2:在dat [(ar - k + 2):( n - k + 1)] - dat [(ar - k + 1):( n - k)]:较长的物体长度不是较短的倍数 对象长度" (我知道有这个错误的其他帖子标题,但似乎没有什么适合我的情况)
在示例中,作者指定如下:
orig <- 2 # set to 1 for original data, set to 2 for extended data # t <- 2 grid <- 200 bq <- 9999 c <- .9 i <- 7 d <- np[i,] if (orig==1){ y <- as.matrix(dat[d[1]:(d[2]-18)]) if (i==4) y <- y[21:82] }else{ y <- as.matrix(dat[d[1]:d[2]]) } name <- "GNP per Capita: 1869-1988" ar <- d[3]
我能指出的是指示ar&lt; -d [3],并且一般来说,指定i和d的含义是什么。我认为这个规范是由于他的数据集由几个变量组成,所有变量都写在同一列中,并且它们与索引相关联。 当我将这些输入提供给R(我使用RStudio)时,在环境窗格中显示为ar = 1.当我为我的练习提供数字输入(ar&lt; - 1)时,唯一的结果是上面提到的错误。
下面,我报告我的数据(正如你所看到的,它只是一个观察很少的系列,因此它应该是一个简单的)和我的输入,而脚本,示例和示例的数据是可下载的here. 我希望有人可以帮我弄清楚我做错了什么,我会非常感谢愿意帮助像我这样的新手的人。
install.packages("pracma") library(pracma) source(file.choose()) dat <- as.matrix(read.csv(file.choose(), header = TRUE)) print(dat) USA [1,] 0.01075000 [2,] 0.01116000 [3,] 0.01214000 [4,] 0.01309000 [5,] 0.01668000 [6,] 0.02991000 [7,] 0.02776000 [8,] 0.04218000 [9,] 0.05415000 [10,] 0.05895000 [11,] 0.04256000 [12,] 0.03306000 [13,] 0.00622000 [14,] 0.11035000 [15,] 0.09132000 [16,] 0.05737000 [17,] 0.06486000 [18,] 0.07647000 [19,] 0.11266000 [20,] 0.13509000 [21,] 0.10316000 [22,] 0.06161000 [23,] 0.03212000 [24,] 0.04317000 [25,] 0.03561000 [26,] 0.01859000 [27,] 0.03741000 [28,] 0.04009000 [29,] 0.04827000 [30,] 0.05398000 [31,] 0.04235000 [32,] 0.03029000 [33,] 0.02952000 [34,] 0.02607000 [35,] 0.02805000 [36,] 0.02931000 [37,] 0.02338000 [38,] 0.01552000 [39,] 0.02188000 [40,] 0.03377000 [41,] 0.02826000 [42,] 0.01586000 [43,] 0.00002270 [44,] 0.02677000 [45,] 0.03393000 [46,] 0.03226000 [47,] 0.02853000 [48,] 0.03839000 [49,] -0.00000356 [50,] 0.00001640 [51,] 0.03157000 [52,] 0.02069000 [53,] 0.01465000 [54,] 0.01622000 [55,] 0.01622000 dat <- dat name <- "Inflation" t <- 1 ar <- 1 grid <- 200 bq <- 1999 c <- .9 all <- 0 grph <- 1 out <- grid_boot(dat, name, t, ar, grid, bq, c, all, grph)