【发布时间】:2019-08-08 11:04:45
【问题描述】:
我有一个名为DATA_TEST的数据集。这个数据框包含6个字符格式的观察值。您可以看到下表。
dput(DATA_TEST)
structure(list(Ten_digits = c("NA", "207", "0101", "0208 90",
"0206 90 99 00", "103")), .Names = "Ten_digits", row.names = c(NA,
-6L), class = "data.frame")
# -------------------------------------------------------------------------
# > DATA_TEST
# Ten_digits
# 1 NA
# 2 207
# 3 0101
# 4 0208 90
# 5 0206 90 99 00
# 6 103
所以我的意图是使用 stringr 或其他包转换此数据帧,如下图所示。实际上代码需要做一件事或更精确
首先必须找到只有三位数的变量,如207 或103,并将此变量转换为0207 和0103。
在下表中,您最终可以看到该表应该是什么样子。
# > Desired Output
# Ten_digits
# 1 NA
# 2 0207
# 3 0101
# 4 0208 90
# 5 0206 90 99 00
# 6 0103
那么有人可以帮我处理这段代码吗?
【问题讨论】:
-
有像
234 45 56这样的值需要转换成0234 45 56吗? -
好吧,好像
DATA_TEST$Ten_digits <- sub("^(\\d{3})$", "0\\1", DATA_TEST$Ten_digits, perl=TRUE)也可以。 -
不,只有三位数的值,比如 207。你可以在第二张表上看到