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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *