Как сравнивать строки в r (3 примера)
Для сравнения строк в R можно использовать следующие методы:
Способ 1. Сравните две строки.
#case-sensitive comparison string1 == string2 #case-insensitive comparison tolower (string1) == tolower (string2)
Метод 2: сравнение двух строковых векторов
#case-sensitive comparison identical(vector1, vector2) #case-insensitive comparison identical( tolower (vector1), tolower (vector2))
Метод 3: Найдите сходство между двумя строковыми векторами
#find which strings in vector1 are also in vector2
vector1[vector1 %in% vector2]
Следующие примеры показывают, как использовать каждый метод на практике.
Пример 1. Проверьте, совпадают ли два вектора
Следующий код показывает, как сравнить две строки в R, чтобы определить, равны ли они:
#define two strings string1 <- "Mavericks" string2 <- "mavericks" #case-sensitive comparison string1 == string2 [1] FALSE #case-insensitive comparison tolower (string1) == tolower (string2) [1] TRUE
Сравнение с учетом регистра возвращает FALSE , поскольку две строки не совсем идентичны.
Однако сравнение без учета регистра возвращает TRUE , поскольку обе строки содержат одни и те же символы в одном и том же порядке, независимо от регистра.
Пример 2. Сравните два строковых вектора
В следующем коде показано, как использовать функциюидентичности () , чтобы определить, равны ли два строковых вектора:
#define two vectors of strings
vector1 <- c("hey", "hello", "HI")
vector2 <- c("hey", "hello", "hi")
#case-sensitive comparison
identical(vector1, vector2)
[1] FALSE
#case-insensitive comparison
identical( tolower (vector1), tolower (vector2))
[1] TRUE
Сравнение с учетом регистра возвращает значение ЛОЖЬ , поскольку два вектора не содержат одинаковые строки в одном и том же регистре.
Однако сравнение без учета регистра возвращает TRUE , поскольку оба вектора содержат одни и те же строки независимо от регистра.
Пример 3: Поиск сходства между двумя строковыми векторами
Следующий код показывает, как использовать оператор %in% , чтобы определить, какие строки в одном векторе принадлежат другому вектору:
#define two vectors of strings
vector1 <- c("hey", "hello", "greetings")
vector2 <- c("hey", "hello", "hi")
#find which strings in vector1 are also in vector2
vector1[vector1 %in% vector2]
[1] “hey” “hello”
Из результата мы видим, что строки «эй» и «привет» существуют как в векторе Vector1, так и в векторе Vector2.
Связано: Как использовать оператор %in% в R
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в R:
Как сравнить два столбца в R
Как сравнить два вектора в R
Как найти местоположение символа в строке в R
Как преобразовать вектор в строку в R