删除列的数字(零)并在数据框中创建一个新列
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
例如,如果我有
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