Непонимание подфункции - PullRequest
0 голосов
/ 31 мая 2018

Я работаю над приложением Shiny, которое просматривает html-файл, заменяя экземпляр фразы другой фразой относительно ее позиции.

То есть, в первый раз, когда приходит "аа", я ставлю "bluh", во второй раз, когда приходит "аа", я ставлю "gfgf".

У меня есть таблица всех 2-х фраз по порядку.

Я думаю, что неправильно понимаю документацию по функциям sub:

Две функции * sub отличаются только тем, что sub заменяет только первое вхождение шаблона, тогда как gsub заменяет всевхождения.

Но вот самый маленький воспроизводимый пример:

tt <- c("aa", "aa","bb","aa")

sub("aa","test",tt)
# [1] "test" "test" "bb"   "test"

gsub("aa","test",tt)
# [1] "test" "test" "bb"   "test"

tt
# [1] "aa" "aa" "bb" "aa"

Я ожидал

sub("aa","test",tt)
# [1] "test" "aa" "bb"   "aa"

, чтобы я мог пройти и перейти:

og.list <- c("aa","cat","aa","cat","aa")

repl.list <- c("the","is","happy")

for(i in 1:3){
  og.list <- sub("aa",repl.list[i], og.list)
} 

вместо этого все "аа" становятся "то".Я думал, что это то, что сделал gsub, но вместо этого он sub и gsub.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Я думаю, вы можете захотеть вот что:

og.list[og.list == "aa"] <- repl.list
#[1] "the"   "cat"   "is"    "cat"   "happy"
0 голосов
/ 31 мая 2018
 Thank you Wiktor^. 

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

 og.list <- c("aa","cat","aa","cat","aa"
 repl.list <- c("the","is","happy")
 og.index <- grep("aa",og.list) 

 for(i in 1:3){ 
 curr.index <- og.index[i] 
 og.list[curr.index] <- sub("aa",
                             repl.list[i],
                             og.list[curr.index])
 } 
...