Как сравнивать строки в 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

Сравнение с учетом регистра возвращает значение FALSE , поскольку два вектора не содержат одинаковых строк в одном и том же регистре.

Однако сравнение без учета регистра возвращает значение 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"

Из вывода мы видим, что строки «привет» и «привет» существуют как в векторе1, так и в векторе2.

Связанный: Как использовать оператор %in% в R

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в R:

Как сравнить два столбца в R
Как сравнить два вектора в R
Как найти расположение символа в строке в R
Как преобразовать вектор в строку в R