Порядок перестановки строк фрейма данных на основе вектора - PullRequest
0 голосов
/ 06 апреля 2020

enter image description here

У меня есть следующий кадр данных и вектор x = 1, 156, 153, 3, 185. Мой вектор соответствует столбцу node.id, показанному в картинка, и я хотел бы переставить строки фрейма данных, чтобы они соответствовали порядку моего вектора. Таким образом, порядок строк фрейма данных должен быть строкой с node.id = 1, затем 156, 153,3,185. Надеюсь, я объяснил это достаточно хорошо.

1 Ответ

0 голосов
/ 06 апреля 2020

Мы можем использовать match

df1[match(df1$node.id, x),]
#  x     lon   lat node.id          name
#1  1 -122.41 37.70       1 San Francisco
#4 22 -117.16 32.71     156     San Diego
#3 21 -118.24 34.05     153   Los Angeles
#2  3 -115.14 36.16       3     Las Vegas
#5 26 -112.08 38.77     185     Richfield

данные

df1 <-  structure(list(x = c(1, 3, 21, 22, 26), lon = c(-122.41, -115.14, 
-118.24, -117.16, -112.08), lat = c(37.7, 36.16, 34.05, 32.71, 
38.77), node.id = c(1, 3, 153, 156, 185), name = structure(c(5L, 
1L, 2L, 4L, 3L), .Label = c("Las Vegas", "Los Angeles", "Richfield", 
"San Diego", "San Francisco"), class = "factor")), 
class = "data.frame", row.names = c(NA, 
-5L))

x <- c(1, 156, 153, 3, 185)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...