首页 > 解决方案 > 省略所选变量之间的空格

问题描述

我有一个名为 DATA_TEST 的数据集。该数据框包含 7 个字符格式的观察值。您可以参见下表。

#DATA SET
DATA_TEST<-data.frame(
  Ten_digits=c("NA","207","0101","0208 90","0206 90 99 00","103","9706 00 00 00"),
  stringsAsFactors = FALSE)
View(DATA_TEST)

在此处输入图像描述

所以我的意图是用 stringr 或其他包转换这个数据框,如下图所示。实际上,代码需要做一件事或更准确地首先必须找到只有 10 位数字的变量,例如“0206 90 99 00”或“9706 00 00 00”,并将这些变量转换为没有空格的变量“0206909900”和“9706000000”。在下表中,您最终可以看到该表应该是什么样子。

在此处输入图像描述

那么有人可以帮我解决这个问题吗?

标签: rgsubstringr

解决方案


您可以尝试使用stringrand dplyr

DATA_TEST %>%
 mutate(Ten_digits = if_else(str_count(Ten_digits, "[0-9]") == 10,
                            str_replace_all(Ten_digits, fixed(" "), ""),
                            Ten_digits))

  Ten_digits
1         NA
2        207
3       0101
4    0208 90
5 0206909900
6        103
7 9706000000

或使用stringrand base R

with(DATA_TEST, ifelse(str_count(Ten_digits, "[0-9]") == 10,
                        str_replace_all(Ten_digits, fixed(" "), ""),
                        Ten_digits))

推荐阅读