R - 将坐标放在一起

时间:2014-11-19 17:19:16

标签: r vector coordinates

我想要[0,1] x [0,1]中的坐标点列表。假设我有

 x = seq(0,1, length.out = 100)
 y = seq(0,1, length.out = 100)

我想将它们组合起来,以便得到一个100 x 100矩阵,其中每个可能的坐标都在我定义的[0,1]中。所以我想得到一个格式为

的数据框M.
M[i,j] = c(x[i], x[j])

i和j的范围从1到100

编辑。这是我想要的输出的一个例子。取

x = c(0,0.5, 1)
y = c(0,0.5,1)


M = c(0,0)    c(0,0.5)      c(0,1)
    c(0.5,0)  c(0.5, 0.5)   c(0.5,1)
    c(1,0)    c(1,0.5)      c(1,1) 

我希望每个条目都是class numeric的向量。 为什么我想要这个,我只想绘制一个二维点阵,其中每个('相邻')坐标之间的线都是M.也就是说,边是(M [i,j],M [i,j + 1])和(M [i,j],M [i + 1,j])这是有道理的。

2 个答案:

答案 0 :(得分:3)

这应该这样做,

a <- 11:20
b <- 11:20

allCombs <- outer(a,b,paste)

使用你的向量而不是a和b。

如果您不希望它们作为字符串,并希望它作为矩阵,则不可能因为矩阵的元素不能是矢量。你可以做什么,如果你需要使用这些来引用其他地方,请使用expand.grid。

a <- 11:20
b <- 11:20

allCombs <- expand.grid(a,b)

答案 1 :(得分:1)

喜欢这个?

M <- data.frame(matrix(nrow=length(x), ncol=length(y)))
for(i in sequence(length(x))){
  for(j in sequence(length(y))){
    M[i,j] <- paste0("[", i, ",", j, "]")
  }
}