似乎字符类型的组合会对显式粘贴操作的结果顺序产生意外结果:
(x = paste(c('green','أحمر', 'أزرق'), collapse=' ')) # arabic for blue and red
#> [1] "green أحمر أزرق"
paste(x, 'yellow')
#> [1] "green أحمر أزرق yellow"
paste(x, 123)
#> [1] "green أحمر أزرق 123"
是否有任何已知的解决方案 - 即确保以与给出的参数相同的顺序连接的方法?也许答案是不连接不同的字母!
答案 0 :(得分:3)
您可以使用Unicode控制字符'left-to-right embedding',u202A
("将以下文字视为从左到右嵌入"):
paste(x, "\u202A", 123)
# [1] "green أحمر أزرق 123"
另请参阅Terminating Explicit Directional Embeddings and Overrides,(u202C
),有关UNICODE BIDIRECTIONAL ALGORITHM和here的详尽说明。