删除列的数字(零)并在数据框中创建一个新列

removing digit (zero) of a column and create a new column in data frame

例如,如果我有

  ID rout
1  1 0123
2  2 0245
3  3 0789
4  4 0963
5  5 6779
6  6  056
7  7  zxc
8  8  asd
9  9  1234

我想知道如何仅删除 rout 列的第一个数字以观察具有 4 个字符且仅当它(第一个字符)为零时,然后创建一个列(rout2 ) 如下所示:

   ID rout rout2
1  1 0123   123
2  2 0245   245
3  3 0789   789
4  4 0963   963
5  5 6779  6779
6  6  056   056
7  7  zxc   zxc
8  8  asd   asd
9  9  1234  1234

在评论中讨论后编辑

为了删除第一个数字为零时,并且仅对于4位字母数字值,您可以

data$rout2 <- ifelse(nchar(data$rout) == 4, sub("^[0]", "", data$rout), data$rout)

输出

#   ID rout rout2
# 1  1 0123   123
# 2  2 0245   245
# 3  3 0789   789
# 4  4 0963   963
# 5  5 6779  6779
# 6  6  056   056
# 7  7  zxc   zxc
# 8  8  asd   asd
# 9  9 1234  1234