我正在开发一个Shiny
应用,它会循环播放一个html文件,用相对于其位置的不同短语替换短语的实例。
也就是说,第一次“aa”来了,我把“bluh”, 第二次“aa”来了,我把“gfgf”。
我按顺序列出了所有第二个短语。
我认为我误解了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)
}
相反,所有“aa”都变成了“the”。我认为这就是gsub所做的,但它同时是sub
和gsub
。
谢谢。
答案 0 :(得分:0)
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])
}
答案 1 :(得分:0)
我想你可能只想要这个:
og.list[og.list == "aa"] <- repl.list
#[1] "the" "cat" "is" "cat" "happy"