r - 在 R 中为任何 dim-d 创建超立方体

标签 r

我目前正在研究在 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

你们会如何进行?

很抱歉这个问题看起来很基本,但我已经用谷歌搜索了很长一段时间没有结果。

欢呼和感谢。

最佳答案

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

关于r - 在 R 中为任何 dim-d 创建超立方体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15367565/

相关文章:

R:如何有效地可视化大型图网络

r - ggplot 在 R 中使用多个 data.frame 的 facet_wrap ?

r - ggplotGrob 的逆?

r - 使 igraph 更清晰易读

graphics - ca 绘制文本属性

r - 在 R 中使用 Stata 变量标签

python - 这里涉及什么概念? Python 和 R 中的示例。

R 为什么在 period.apply 使用函数 "mean with condition"时出现错误结果

r - 线搜索在训练 ksvm prob.model 时失败

c++ - R 函数和 Rcpp 中的环境