R 根据条件更改列中的值

R 根据条件更改列中的值,r,R,在某种条件下,我必须在字符向量内的值的末尾添加特定数量的字符-仅针对特定列。 每个值必须有5个字符的固定长度,如果当前值少于5个字符,我必须添加零,直到达到最大长度-仅当值的第一个字符是字母“a”时 输入向量尝试 input\u vector[子字符串(input\u vector,1,1)='A']这里是base R中的一个解决方案 replace(input_vector,grep("A.",input_vector),strtrim(paste0(input_vector,"00000")

在某种条件下,我必须在字符向量内的值的末尾添加特定数量的字符-仅针对特定列。 每个值必须有5个字符的固定长度,如果当前值少于5个字符,我必须添加零,直到达到最大长度-仅当值的第一个字符是字母“a”时

输入向量尝试


input\u vector[子字符串(input\u vector,1,1)='A']这里是
base R中的一个解决方案

replace(input_vector,grep("A.",input_vector),strtrim(paste0(input_vector,"00000"),5)[grep("A.",input_vector)])

我只是编辑了它,这样它只适用于A是第一个字母的条目。在编辑之前,字符串中带有A的任何条目都会受到影响。
input_vector[substring(input_vector, 1, 1) == 'A'] <- str_pad(input_vector[substring(input_vector, 1, 1) == 'A'], 5, side = "right", pad = "0")
input_vector
#[1] "ABC00" "ZZX"   "B"     "AILK0"
replace(input_vector,grep("A.",input_vector),strtrim(paste0(input_vector,"00000"),5)[grep("A.",input_vector)])