Я пытаюсь найти эффективный способ создания хеш-таблицы для большого объема данных, включающий два ключа и несколько возвращаемых значений.
Примерный набор данных может быть сгенерирован следующим образом:
set.seed(1)
Data <- data.frame(
X = sample(1:10),
Y = sample(1:10),
val1 = sample(1:10),
val2 = sample(1:10),
val3 = sample(1:10)
)
У меня большой объем данных о местоположении (X и Y в образце), и у меня есть несколько значений, которые необходимо сопоставить с каждой точкой данных.Мне нужно будет просмотреть сопоставленные значения в моем коде миллионы раз, и в идеале я мог бы найти заданную пару (X, Y) и получить возвращенный вектор (val1, val2, val3).В настоящее время я использую:
getPixIndex <- function(Data, x, y) {
return(which(Data$X == x & Data$Y == y))
}
Это возвращает индекс, который затем позволяет мне получить доступ к соответствующим val1, val2 и val3 для пары (X, Y).
Однако,Мне интересно, если это самый эффективный способ поиска.Я искал реализации хеш-таблиц в R и нашел среды, но кажется, что они требуют символов в качестве ключей, что означало бы, что мне придется конвертировать все пары (X, Y) в символы, которые не кажутся эффективными.Есть ли более эффективный способ создания этой справочной таблицы?