Частичное совпадение строк между двумя столбцами для большого набора данных R - PullRequest
0 голосов
/ 29 октября 2018

У меня есть два столбца, и я хочу создать двоичный столбец, если между двумя столбцами есть частичное совпадение.
Например:

X             Y        Match
hello         hello     1
hi hello      hi        1
NA            bye       NA
bye           hi bye    1
good          bad       0

Я использовал следующий код,

df['Match'] <- ifelse(with(df, str_detect(x, y)|str_detect(y, x)), 1, 0)

, который работал для первых нескольких строк, но когда я использовал его для всего набора данных (n = 14000), я получаю эту ошибку:

Error in stri_detect_regex(string, pattern, opts_regex = opts(pattern)) :
Incorrectly nested parentheses in regexp pattern. (U_REGEX_MISMATCHED_PAREN)

Как мне решить эту проблему?

1 Ответ

0 голосов
/ 29 октября 2018

Возможно, в ваших данных есть круглые скобки или специальные символы, которые вызывают эту ошибку.

Попробуйте такой цикл:

for(i in 1:nrow(df)) {
  print(i)
  str_detect(df$x[i], df$y[i])
}

последний напечатанный i скажет вам, в какой строке находится проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...