【发布时间】:2016-09-22 11:32:49
【问题描述】:
考虑以下向量:
ID <- c("A1","B1","C1","A12","B2","C2","Av1")
names <- c("ALPHA","BRAVO","CHARLIE","AVOCADO")
我想根据向量names 的第一个字母将向量ID 中每个元素的第一个字符替换为向量names。我还想在0:9 之间的每个数字之前添加一个_0 。
请注意,Av1 和 AVOCADO 元素会使事情有些偏离,尤其是在 Av1 中使用小写的 v。
结果应该是这样的:
res <- c("ALPHA_01","BRAVO_01","CHARLIE_01","ALPHA_12","BRAVO_02","CHARLIE_02", "AVOCADO_01")
我知道应该使用 regex 完成,但我已经尝试了 2 天,但没有任何结果。
【问题讨论】:
-
扔掉一点 - 实际上,这是非常重要的一点。
BINGO有什么可以替代Bi3?和BROTHER为Bro3?好吧,我的意思是不清楚你想如何定义模式。 -
@WiktorStribiżew 我不确定你的意思?我希望将
A替换为ALPHA,将Av替换为AVOCADO,并插入_0 -
好的,但是
ALPHA以A开头,A1和Av1以A开头,你怎么知道有AVOCADO在这之后处理需要 2 个前字符用于模式? -
我不知道,这就是为什么我要问比我更有知识的人。