R语言提取字符向量内数字并转换为指定整数向量的代码求解
R语言实现字符串清洗转换为指定整数向量
需求概述
- 清理给定的字符向量,提取有效内容转换为整数向量
- 输出结果必须和指定目标格式、数值完全一致
原始待处理数据
c1 <- c("cSVgKl9yyb", "e7w4o11oh8", "iYdWYvV7b2", "Epal3cNuGH", "NNhbMR0ocT", "fYaRvoag8B", "LO4fkHm7Kn", "JK8jKhS5De", "DcMAZ7Rxtp", "sV0tqC8XSd")
可运行实现代码
无需安装第三方扩展包,基础R环境即可运行:
c1 <- c("cSVgKl9yyb", "e7w4o11oh8", "iYdWYvV7b2", "Epal3cNuGH", "NNhbMR0ocT", "fYaRvoag8B", "LO4fkHm7Kn", "JK8jKhS5De", "DcMAZ7Rxtp", "sV0tqC8XSd") result <- as.integer( vapply( regmatches(c1, gregexpr("\\d", c1)), paste, collapse = "", character(1) ) ) print(result)
运行结果
执行代码后控制台输出如下,和要求的目标结果完全一致:
[1] 9 74118 72 3 0 8 47 85 7 8
逻辑说明:
gregexpr("\\d", c1)定位每个字符串中所有数字的位置,regmatches提取对应位置的数字字符,将同一字符串提取到的数字按原顺序拼接后,通过as.integer转为整数类型即可。第10个字符串拼接后得到带前导零的"08",转整数时自动丢弃前导零得到数值8,符合输出要求。
内容的提问来源于stack exchange,提问作者Daan Reitsma
相关产品推荐
相关产品推荐

