【发布时间】:2020-10-21 14:03:04
【问题描述】:
我有话语的音标:
str <- c("aɪ nəʊ ɪts ɪts ðə sɪksθ əv ʤuːn",
"wɛl ðə ʧæp nɛkst dɔːz ˈfaɪndɪŋ ɪt ˈvɛri əˈmjuːzɪŋ",
"lʌvli bu(ː)ˈkeɪ əv ˈflaʊəz fə mi wɛl ðæts ɪt",
"ðeə raɪt ləʊ ɪn ðə liːg ɑːnt ðeɪ",
"kɔː wi θɔːt wi wɪʃt wiːd lɛft ˈɜːlɪə naʊ",
"aɪ nəʊ s ðə biː ðə bɪg bɔɪ ðeɪl",
"jeə bət ɪt s ə məʊl aɪ kən əˈʃʊə juː",
"ɑː ʤəst eə haʊ aɪ juːzd tə dʊ jɪəz əˈgəʊ",
"jeə dəʊnt ˈwʌri əˈbaʊt mi æn aɪm ɔːlˈraɪt")
我想用数字替换所有双元音;双元音及其匹配的替换号码存储在参考数据框中:
ref <- data.frame(
diphthong = c("ɪə", "eɪ", "ʊə", "ɔɪ", "aɪ", "eə", "aʊ", "əʊ"),
replacement = 1:8
)
我可以使用 gsub 单独替换每个双元音,将结果存储在新向量中,替换该新向量中的下一个双元音,等等:
a <- gsub("ɪə", "1", str)
b <- gsub("eɪ", "2", a)
c <- gsub("ʊə", "3", b)
d <- gsub("ɔɪ", "4", c)
e <- gsub("aɪ", "5", d)
f <- gsub("eə", "6", e)
g <- gsub("aʊ", "7", f)
h <- gsub("əʊ", "8", g)
虽然这让我得到了想要的结果(见下文),但这种方法是重复的,远非优雅。如何一次性完成替换?
预期结果:
[1] "5 n8 ɪts ɪts ðə sɪksθ əv ʤuːn" "wɛl ðə ʧæp nɛkst dɔːz ˈf5ndɪŋ ɪt ˈvɛri əˈmjuːzɪŋ"
[3] "lʌvli bu(ː)ˈk2 əv ˈfla3z fə mi wɛl ðæts ɪt" "ð6 r5t l8 ɪn ðə liːg ɑːnt ð2"
[5] "kɔː wi θɔːt wi wɪʃt wiːd lɛft ˈɜːl1 n7" "5 n8 s ðə biː ðə bɪg b4 ð2l"
[7] "j6 bət ɪt s ə m8l 5 kən əˈʃ3 juː" "ɑː ʤəst 6 h7 5 juːzd tə dʊ j1z əˈg8"
[9] "j6 d8nt ˈwʌri əˈb7t mi æn 5m ɔːlˈr5t"
【问题讨论】: