Использование stringsim в stringdist

Я использую пакет stringdist для сравнения некоторых векторов строк, но я продолжаю получать ответ, отличный от того, что я думаю, что должен, когда пытаюсь протестировать пакет.

Я хочу сделать это:

stringsim('PANDIAN', 'PANIAN', method="lv")
[1] 0.8571429

До 2 столбцов в кадре данных

stringsim(testdf.lv$Last[1], testdf.lv$matchedname[1], method="lv")

Но я получаю эту ошибку:

Error in UseMethod("lengths") : 
  no applicable method for 'lengths' applied to an object of class "factor"

Мне нужно иметь возможность сделать это, потому что в идеале я бы заменил номера строк на i и запустил их в цикле. Это вообще возможно? Я пытался искать похожие ошибки, но другие вопросы не очень помогли.


person grad_student    schedule 13.10.2015    source источник
comment
Вы действительно должны предоставить воспроизводимый пример, который определяет testdf.lv, иначе мы понятия не имею, что в нем. Однако похоже, что у вас есть факторы, а не символьные переменные. Попробуйте stringsim(as.chracter(testdf.lv$Last[1]), as.character(testdf.lv$matchedname[1]), method="lv")   -  person MrFlick    schedule 14.10.2015
comment
@MrFlick Извините, вы правы. Я должен был включить полный код. И да! Это произошло потому, что столбец testdf.lv был вектором, а не символом. Благодарю вас!   -  person grad_student    schedule 14.10.2015


Ответы (1)


Так что спасибо @MrFlick. Получаются данные, которые я использовал в столбце:

testdf.lv$Last

Был ошибочно охарактеризован как факторная переменная вместо признака. Изменение этого столбца на символ со следующим:

testdf.ld$Last <- as.character(testdf.ld$Last)

Исправлена ​​ошибка, и я смог переписать код в цикл for для прохождения всего фрейма данных.

person grad_student    schedule 13.10.2015