R: agrep ошибка при замене строки другой строкой

После большого количества проб / ошибок и функции поиска я все еще не понимаю, что такое простая мысль (как всегда, hrmpf):

У меня есть столбец в кадре данных x$question и в этом столбце есть выражение 'A/V' время от времени, и я просто хочу, чтобы это было изменено на 'A / B',

Я попытался немного здесь и там, и подумал, что это должно работать:

 x$question[agrep('A/V',x$question)]<-'A / B'

но я получаю ошибку:

In `[<-.factor`(`*tmp*`, agrep('A/V',  :
invalid factor level, NAs generated    

или я мог бы сделать это

agrep('A/V','A / B', x$question).

Но здесь я получаю ошибку:

Error in .amatch_bounds(max.distance) : 
match distance components must be non-negative

Так как у меня совершенно нет идей, я был бы очень благодарен, если бы у вас были предложения, или, возможно, даже более простой способ замены строки другой строкой.

1 ответ

Решение

Это работает?

 gsub("A/V","A/B",x$question)

Пример:

x<-c("A/V", "A/V", "A/V")
x<-gsub("A/V","A/B",x)
>x
[1] "A/B" "A/B" "A/B"

Примечание: вы можете использовать ifelse за это тоже.

> ifelse(x=="A/B","A/V",x)
[1] "A/V" "A/V" "A/V"
Другие вопросы по тегам