-1

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

  • 2 点位于 (0,1) 和 (0,-1)
  • 200 个点位于 x 上的 [-1,1] 段上

我正在处理函数,但我觉得一些 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()))
4

2 回答 2

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()。

于 2013-03-05T20:00:00.757 回答
2
dgk <- data.frame(x = c(seq(-.99, 1, .01), 0, 0), y = c(rep(0, 200), -1, 1))

这符合您想要的输出。看来您只需要熟悉seqand rep

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

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

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

于 2013-03-05T22:46:24.260 回答