2013-03-05 116 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