2014-11-19 5 views
0

Я хочу список координатных точек в [0,1] x [0,1]. Предположим, у меня естьR - складывание координат вместе

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

Я хочу, чтобы объединить их, так что я получаю матрицу 100 х 100 с каждым возможным координировать в [0,1], что я определен. Так что я хотел бы получить кадр данных M формы

M[i,j] = c(x[i], x[j]) 

с I и J в диапазоне от 1 до 100

Edit. Вот пример вывода, который я хочу. Take

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) 

Я хочу, чтобы каждая из записей была вектором класса числовым. Для чего я хочу это, я просто хочу нарисовать двумерную решетку с линиями между каждой («соседней») координатой в M. Ie., Ребрами являются (M [i, j], M [i, j + 1]) и (M [i, j], M [i + 1, j]), когда это имеет смысл.

+0

Можете ли вы привести пример того, как вы хотите, чтобы конечный результат выглядел? – James

+0

Не уверен, что это ясно. Вы можете создать матрицу размером 100 × 100 достаточно простой 'matrix (rep (NA, 100 * 100), 100,100)', но как вы хотите, чтобы она относилась к вашим координатам? Что ты пытаешься сделать? – Spacedman

+0

извините. Я хочу все возможные возможности координации. Что-то вроде M [i, j] = c (x [i], y [j]) для i в 1: 100, j в 1: 100 – Ben

ответ

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, "]") 
    } 
} 
3

Это должно сделать это,

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

allCombs <- outer(a,b,paste) 

Используйте векторы вместо и Ь.

Если вы не хотите, чтобы они были как строки, и хотите, чтобы это было как матрица, это невозможно, поскольку элемент матрицы не может быть вектором. Что вы можете сделать, если вам нужно использовать их для ссылки в другом месте, то используйте expand.grid.

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

allCombs <- expand.grid(a,b) 
Смежные вопросы