Присвоение числовой последовательности двум переменным в R
У меня есть точки на карте, которые были помечены случайным образом. Мне нужно назначить последовательность (например, 1, 2, 3, ...) в новом столбце, чтобы местоположения точек были проиндексированы в широких строках (по диапазонам координатной переменной x) и прочитаны слева направо по всей карте (путем сортировки координатной переменной y). Затем я объединю индекс и номер тега для окончательной карты.
Шаг 1) Я смог разделить широту на строки с помощью функции cut():
#Divide the points into 8 horizontal rows by their y coordinates.
data$rows <- cut(x = data1$y, breaks = 8, labels = 1:8)
Шаг 2) Присвоение числовой последовательности слева направо (по координате х), строка за строкой оказалось не по силам. Я пробовал использовать циклы for и ifelse - я подозреваю, что могут быть более лаконичные способы, но идеальным будет относительно простой способ следовать за ним. Если кто-то может предложить способ, вот пример данных ниже:
data <- structure(list(Tag = structure(c(23L, 7L, 4L, 6L, 5L, 12L, 3L,
9L, 13L, 14L, 16L, 24L, 18L, 20L, 15L, 11L, 10L, 8L, 2L, 22L,
19L, 21L, 17L, 1L), .Label = c("1566", "1596", "1597", "1598",
"1599", "1600", "1601", "1602", "1622", "1623", "1624", "17",
"502", "503", "512", "513", "515", "517", "518", "519", "644",
"645", "City01", "Us"), class = "factor"), x = c(-122.7405302,
-122.7410547, -122.7412747, -122.741115, -122.7411504, -122.742962,
-122.7414142, -122.7417156, -122.7431296, -122.7428215, -122.741143,
-122.7414145, -122.7412415, -122.7412999, -122.7409921, -122.7420029,
-122.74189, -122.7408249, -122.7413927, -122.740906, -122.7412768,
-122.740873, -122.7412091, -122.743327), y = c(49.03835995, 49.03834762,
49.03834693, 49.03834658, 49.03834611, 49.03834436, 49.03834331,
49.03834181, 49.03834172, 49.03833695, 49.03833146, 49.03832938,
49.03832916, 49.03832912, 49.03832792, 49.03832746, 49.03832445,
49.03832342, 49.03832305, 49.03832113, 49.03832026, 49.03831921,
49.03831286, 49.03831027)), .Names = c("Tag", "x", "y"), class = "data.frame", row.names = c(NA,
-24L))