我同意正则表达式是去这里的方式。
首先,初始化列:
NewdataColumn <- rep(NA, length(MyDataColumn))
然后复制不包含字母的条目:
non_alpha <- grep("[[:alpha:]]", MyDataColumn, invert = TRUE)
NewdataColumn[non_alpha] <- MyDataColumn[non_alpha]
最后用空字符串替换非数字字符:
NewdataColumn <- gsub("[^[:alnum:]]", "", NewdataColumn)
正则表达式是一个非常有用的工具。我经常使用regular-expressions.info作为参考,他们也有一些教程可以帮助你入门。幸运的是,这个例子中的正则表达式非常简单,所以它可能是一个很好的早期理解目标。
也就是说,正则表达式非常复杂,只是因为有几种不同的实现并且它们都略有不同。例如,Perl 和 Python 都提供了极大的扩展引擎,但归根结底,每个扩展都有更多的语法需要记住——还有更多你不能编写的正则表达式,因为你会不小心匹配到你不想要的东西匹配。有时很难记住在不同的上下文中什么被认为是“扩展的”,并且扩展并不总是可移植的。
也就是说,我已经持续使用正则表达式大约一年了,而我现在才刚刚开始能够利用简单模式匹配之外的功能。从一些基本示例开始慢慢来。随着您变得更加舒适,您将开始看到更多适用于它们的应用程序,到那时您将准备好了解更多信息。Python 正则表达式是一个特别好的学习工具,因为如果启用“详细”选项,您实际上可以包含注释和未解析的空格。