2

以下にコードがあります。「decompose.graph」がどのように機能するのか正確に理解できません。以下のコードでは、「comps」に何があるかを確認したいと思います。しかし、それは私が理解できないリストのいくつかの構造として示されています。

また、「comps」のグラフィック表現を表示するためにどの関数を使用できますか(プロットを試しましたが、機能していません)

gr<-graph(c(1,2,1,3,1,4,2,3,2,4,3,4),directed=FALSE)

cl<-cliques(gr,min=2,max=2)

  edges <- c()
  for (i in seq_along(cl)) {
    for (j in seq_along(cl)) {
      if ( length(unique(c(cl[[i]], cl[[j]]))) == 3 ) {
        edges <- c(edges, c(i,j))
      }
    }
  }

  plot(clq.graph) <- simplify(graph(edges))
  V(clq.graph)$name <- seq_len(vcount(clq.graph))
  comps <- decompose.graph(clq.graph)

  lapply(comps, function(x) {
    unique(unlist(cl[ V(x)$name ]))
  })
4

1 に答える 1

0

一般的に言えば、R の関数の背後にあるコードを見たい場合は、コマンドで関数名を入力して Enter キーを押すことができます。これにより、コードの概要がわかります。例えば:

> decompose

あなたに与える:

function (x, type = c("additive", "multiplicative"), filter = NULL) 
{
    type <- match.arg(type)
    l <- length(x)
    f <- frequency(x)
    if (f <= 1 || length(na.omit(x)) < 2 * f) 
        stop("time series has no or less than 2 periods")
    if (is.null(filter)) 
        filter <- if (!f%%2) 
            c(0.5, rep(1, f - 1), 0.5)/f
        else rep(1, f)/f
    trend <- filter(x, filter)
    season <- if (type == "additive") 
        x - trend
    else x/trend
    periods <- l%/%f
    index <- seq(1L, l, by = f) - 1
    figure <- numeric(f)
    for (i in 1L:f) figure[i] <- mean(season[index + i], na.rm = TRUE)
    figure <- if (type == "additive") 
        figure - mean(figure)
    else figure/mean(figure)
    seasonal <- ts(rep(figure, periods + 1)[seq_len(l)], start = start(x), 
        frequency = f)
    structure(list(x = x, seasonal = seasonal, trend = trend, 
        random = if (type == "additive") x - seasonal - trend else x/seasonal/trend, 
        figure = figure, type = type), class = "decomposed.ts")
}
<environment: namespace:forecast>

decompose.graph についても同じことを試しましたが、機能が利用できないようです。これは特別なライブラリですか?cliquesまた、機能が利用できないように見えるため、コードを実行するのにもいくつかの課題があります。使用しているライブラリを含めると役立ちます。

于 2012-11-27T06:52:58.403 に答える