Как перебирать строки: stringsim в R - PullRequest
0 голосов
/ 28 сентября 2019

Я новичок в R, но мне это нужно для одного конкретного исследовательского вопроса.Как мне просмотреть список строк, используя функцию stringsim в пакете StringDist?

Я пробовал поискать в Google, но не нашел ответов, которые могли бы соответствовать моему вопросу.Я прошу прощения за, что, вероятно, очень простой вопрос - я надеюсь выучить R должным образом в будущем, но мне нужно только это для одной вещи в моем текущем проекте.Я могу сделать это вручную, строка за строкой, но если кто-то пожалеет меня и поможет, я буду очень признателен.

Мне нужно использовать stringsim, чтобы сравнить каждую строку в списке строк сканоническая строкаИ вернуть для каждого сравнения значение строки в диапазоне от 0 до 1.

Итак, сравните «ABCDEFG» с «ABCFFDKJLJ» и с «LKJASJLKJI», с «CCDETT» и т. Д. И верните для каждого из нихсравнивает значение между 0 и 1, используя stringsim.

1 Ответ

0 голосов
/ 28 сентября 2019

outer можно использовать для получения всех попарных сходств элементов вектора.

library(stringdist)

x <- c('ABCDEFG', 'ABCFFDKJLJ', 'LKJASJLKJI', 'CCDETT')
outer(x, x, stringsim)
#          [,1] [,2] [,3]      [,4]
#[1,] 1.0000000  0.4  0.1 0.4285714
#[2,] 0.4000000  1.0  0.1 0.2000000
#[3,] 0.1000000  0.1  1.0 0.0000000
#[4,] 0.4285714  0.2  0.0 1.0000000

Или, чтобы сделать его более читабельным,

sim <- outer(x, x, stringsim)
print(sim, digits = 2)
#     [,1] [,2] [,3] [,4]
#[1,] 1.00  0.4  0.1 0.43
#[2,] 0.40  1.0  0.1 0.20
#[3,] 0.10  0.1  1.0 0.00
#[4,] 0.43  0.2  0.0 1.00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...