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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.