3

私は現在、d次元で機能するRコードに取り組んでいます。唯一の問題は...私はRにまったく慣れていないため、Rでd次元の超立方体に相当するものを作成する方法がわかりません.

他の言語のいくつかの概念を使用して、コーディングを試みました

## creation of the d-dimensional hypercube
expression <- "u1=(1:20)/20"
   for (i in 2:d) {
     extension <- paste("u", i, "=(1:10)/10",sep = "")          
     expression <- paste(expression, extension, sep = ", ")
}
q <- as.matrix(expand.grid(eval(parse(text=expression)), KEEP.OUT.ATTRS=FALSE))

しかし、解析関数はコンマを認識しないため、それは機能しませんでした...

基本的に、任意の dim=d の場合、たとえば次のすべての組み合わせを提供するマトリックスまたはデータ フレームを作成する方法が必要です。

 u=(1:10)/10

皆さんはどのように進めますか?

非常に基本的な質問で申し訳ありませんが、結果が得られずにかなり長い間グーグルで検索してきました。

乾杯と感謝。

4

1 に答える 1

3
makeHypercube <- function(dim, ticks) {
    do.call(expand.grid, 
            replicate(dim, seq_len(ticks)/ticks, simplify=FALSE))
}

## Try it out
makeHypercube(dim=3, ticks=2)
#   Var1 Var2 Var3
# 1  0.5  0.5  0.5
# 2  1.0  0.5  0.5
# 3  0.5  1.0  0.5
# 4  1.0  1.0  0.5
# 5  0.5  0.5  1.0
# 6  1.0  0.5  1.0
# 7  0.5  1.0  1.0
# 8  1.0  1.0  1.0

## Check that it works in higher dimensions
dim(makeHypercube(dim=10, ticks=3))
## [1] 59049    10
于 2013-03-12T17:06:21.040 に答える