1

这些天来,我遇到了 R 和 RStudio 的问题。R 脚本无法在 RStudio 中运行,它经常被中断。但它可以在原来的控制台中成功运行。这是脚本:

library(MASS)
simulation <- function(index) { 
n = 800  #100 200 400 800 1600 3200
 p = 0.5 * n  #0.5*n 0.8*n 1.2*n
  delta = 0.5  #0.5
  k0 = 1
  y = array(0, dim = c(p, n))
  # simulation1 r=3
  # ---------------------------------------------------------
  r = 4
  A = array(runif(p * r, min = -1, max = 1), dim = c(p, r))
  x = array(0, dim = c(r, n))  #x = array(0, dim = c(p, n)) 
  epsilon = array(t(mvrnorm(n, mu = rep(0, p), Sigma = diag(1, p, p))), 
                  dim = c(p, n))
  e = array(t(mvrnorm(n, mu = rep(0, r), Sigma = diag(1, r, r))), dim = c(r, 
                                                                          n))
  Pi = diag(c(0.6, -0.5, 0.3, 0.6), r, r)
  for (i in 2:n) {
    x[, i] = Pi %*% x[, i - 1, drop = FALSE] + e[, i]
  }
  A[, 2] = A[, 2]/p^(delta/2)  # weak factor
  y1 = A %*% x + epsilon
  y = t(scale(t(y1), center = T, scale = FALSE))
  Mhat = array(0, dim = c(p, p))
  for (i in 1:k0) {
    covk = y[, (i + 1):n, drop = FALSE] %*% t(y[, 1:(n - i), drop = FALSE])/(n - 
                                                                               i)
    Mhat = Mhat + covk %*% t(covk)
  }
  R = p/2
  ratio = array(0, dim = c(R, 1))
  temp = eigen(Mhat)
  value = temp$values
  vector = temp$vectors
  for (i in 1:R) {
    ratio[i] = value[i + 1]/value[i]
  }
  plot(ratio, type = "l")
  rhat1 = which.min(ratio)
  Ahat1 = vector[, 1:rhat1, drop = FALSE]
  # two step
  ystar = y1 - Ahat1 %*% t(Ahat1) %*% y1
  ystar = t(scale(t(ystar), center = T, scale = FALSE))
  Mhatstar = array(0, dim = c(p, p))
  for (i in 1:k0) {
    covk = ystar[, (i + 1):n, drop = FALSE] %*% t(ystar[, 1:(n - i), 
                                                        drop = FALSE])/(n - i)
    Mhatstar = Mhatstar + covk %*% t(covk)
  }
  temp1 = eigen(Mhatstar)
  valuestar = temp1$values
  vector1 = temp1$vectors
  ratiostar = array(0, dim = c(R, 1))
  for (i in 1:R) {
    ratiostar[i] = valuestar[i + 1]/valuestar[i]
  }
  plot(ratiostar, type = "l")
  rhat2 = which.min(ratiostar)
  # Ahat2 = vector1[, 1:rhat2, drop = FALSE]
  rhat = rhat1 + rhat2
  # Ahat = cbind2(Ahat1, Ahat2)
  return(rhat)
}
result=replicate(200,simulation())

节目经常被打断。我不知道为什么。

我的桌面是:win7 RStudio 版本:0.98.426 日志文件是:

15 Oct 2013 11:02:50 [rsession-Administrator] WARNING Abort requested; LOGGED FROM: bool session::connection::checkForAbort(boost::shared_ptr<session::HttpConnection>, boost::function<void()>) C:\Users\Administrator\rstudio\src\cpp\session\http\SessionHttpConnectionUtils.cpp:146
15 Oct 2013 11:03:00 [rsession-Administrator] ERROR r error 5 (R symbol not found) [symbol (option)=ggvis.renderer]; OCCURRED AT: T r::options::getOption(const std::string&, const T&) [with T = std::basic_string<char, std::char_traits<char>, std::allocator<char> >] C:\Users\Administrator\rstudio\src\cpp\r\include/r/ROptions.hpp:73; LOGGED FROM: T r::options::getOption(const std::string&, const T&) [with T = std::basic_string<char, std::char_traits<char>, std::allocator<char> >] C:\Users\Administrator\rstudio\src\cpp\r\include/r/ROptions.hpp:75
4

0 回答 0