2013-03-05 156 views
-1

我想知道什么是最直接的方式来获得点的二维数组在计划坐标:手动创建阵列

  • 2点是在(0,1)和(0 ,-1)
  • 200点上的[-1,1]段躺在X

我通过功能去,但我觉得一些R-福将是很容易

编辑:

的信息,最后我这样做,但必须有一个更好的办法...

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())) 
+1

如果它从(0,1)开始并转到(0,-1),它如何包含(-1,1)? – alexwhan 2013-03-05 20:07:23

+0

你为什么要点他们? – nicolas 2013-03-05 20:25:07

+1

@nicolas?什么?你真的需要添加一些关于你想要什么的解释。 – Dason 2013-03-05 20:27:54

回答

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) 

我把它分成几个步骤更容易地说明到底是怎么回事。

+0

它确实匹配他的输出,但是他的输出与他的要求不符!如果如你所说,你想在x上-1到1,你需要结合这两个答案(因为@Dason给你一个'data.frame') – alexwhan 2013-03-05 22:47:42

+0

@alexwhan - 我猜的好点。由于他们在解释上做得不好,我主要将结果基于他们期望的结果。 – Dason 2013-03-05 22:48:26

+0

完美合理! – alexwhan 2013-03-05 22:49:26

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

+0

有趣。这看起来比我做的更习惯 – nicolas 2013-03-05 22:37:21