Як порівнювати рядки в 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 , оскільки два рядки не зовсім ідентичні.

Однак порівняння без урахування регістру повертає ІСТИНУ , оскільки обидва рядки містять однакові символи в однаковому порядку, незалежно від регістру.

Приклад 2: Порівняйте два рядкові вектори

У наведеному нижче коді показано, як використовувати функцію identical() для визначення рівності двох рядкових векторів:

 #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”

З результату ми бачимо, що рядки «hey» і «hello» існують як у векторі1, так і у векторі2.

Пов’язане: як використовувати оператор %in% у R

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові операції в R:

Як порівняти два стовпці в R
Як порівняти два вектори в R
Як знайти розташування символу в рядку в R
Як перетворити вектор на рядок у R

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *