R中手动创建数组

时间:2013-03-05 19:55:55

标签: r

我想知道在计划中获得二维点坐标数组的最直接方法是:

  • 2点为(0,1)和(0,-1)
  • 在x
  • 的[-1,1]段上有200个点

我正在经历各种功能,但我觉得有些R-fu很容易

编辑:

获取信息,我最终这样做了,但必须有一个更好的方法......

x <- function(){
    z <- list()
    for (i in (0 : 200)){
        z[i] <- i/100 - 1
    }
    z[201] <- 0
    z[202] <- 0
    z
}

y <- function(){
    z <- list()
    for (i in (0 : 200)){
        z[i] <- 0 * (i/100 - 1) # 0 is to 'tilt' the segment
    }
    z[201] <- -1
    z[202] <- 1
    z
}

dgk <- data.frame(x = as.numeric(x()),
                  y = as.numeric(y()))

2 个答案:

答案 0 :(得分:3)

我不清楚你要求的是什么,但是如何:

ptcoords = cbind(x=c(0,0,runif(200,-1,1)), y=c(-1,1,rep(0,200)))
plot(ptcoords)

您还可以使用seq(-1,1,length = 200)逐步覆盖-1到1,而不是使用runif()。

答案 1 :(得分:2)

dgk <- data.frame(x = c(seq(-.99, 1, .01), 0, 0), y = c(rep(0, 200), -1, 1))

这符合您想要的输出。您似乎只需要熟悉seqrep

编辑:然而,这可能更接近你真正想要的东西

x <- c(seq(-1, 1, length.out = 200), 0, 0)
y <- c(rep(0, 200), -1, 1)
dgk <- data.frame(x, y)

我把它分成了几个步骤,以便更容易地说明发生了什么。