Использование кодировки, чтобы проверить, содержит ли вектор очень длинную строку - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть одна длинная строка длиной около 100 символов (назовем это str_1) и вектор (назовем его vec), содержащий около 100 000 строк, как показано ниже.Обратите внимание, что приведенный ниже вектор имеет только 3 значения только для примера:

str_1 <- "1-3-23-4-45-6-23-1-5-6-34-4-7-8-78-6.767-56-8-56-545-4-34-23--23-34434-2-34-32432-5-4.3-2.12-12.4-12.34"
vec <- c("1-3-23-4-45-6-23-1-5-6-34-4-7-8-78-6.767-56-8-56-545-4-34-23--23-34434-2-34-32432-3-4.3-2.12-12.4-12.34",
"1-3-23-4-45-6-23-1-5-6-34-4-7-8-78-6.767-56-8-56-545-4-34-23-3-23-34434-2-34-32432-5-4.3-2.22-12.4-12.34",
"1-3-23-4-45-6-23-1-5-6-34-4-7-8-78-6.767-56-8-56-545-4-34-23-3-23-34434-2-34-32462-5-4.3-2.12-12.4-12.34")

Я хочу проверить, что мой вектор содержит str_1.Это хорошая практика, чтобы просто исправить следующий код:

str_1 %in% vec

Или есть лучший способ, кодируя каждую строку в более короткое значение?И если да, то как?Моя главная задача - использовать слишком много памяти.

1 Ответ

0 голосов
/ 05 февраля 2019

Это звучит аналогично предыдущему сообщению ( Кодирование строк имени в уникальное число ), где простейшим решением для присвоения уникального идентификатора каждой строке было использование хеширования.Если это также самый простой способ уникальной идентификации строк в вашем случае, кажется, что он не даст большого преимущества в отношении памяти, поэтому я бы просто использовал str_1 %in% vec, как вы предложили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...