r - 省略所选变量之间的空格
问题描述
我有一个名为 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”。在下表中,您最终可以看到该表应该是什么样子。
那么有人可以帮我解决这个问题吗?
解决方案
您可以尝试使用stringr
and 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
或使用stringr
and base R
:
with(DATA_TEST, ifelse(str_count(Ten_digits, "[0-9]") == 10,
str_replace_all(Ten_digits, fixed(" "), ""),
Ten_digits))
推荐阅读
- sql-server - 如何将 varchar 转换为 varbinary,其中每个 char 后跟一个空字符?
- python - 范围内的Python加权随机数
- typescript - 打字稿将抽象类作为通用约束传递并构造它
- c - C - 相同子 ID 的多个实例(fork 和 fifo)
- javascript - 如何使用纯javascript将多个用户名和密码插入localStorage
- java - 我想在回收站视图中显示我的所有数据
- javascript - JavaScript中的超时和间隔是否使用单调时间?
- python - 如何根据不同的列用 NA 填充名称
- android - 在安装 Android 应用程序时播放保护警告弹出窗口
- swagger - 如何制作像 > Array > {} > name: {} 这样的示例