【发布时间】:2013-01-13 16:56:53
【问题描述】:
我有一个data.frame,比如说 5 列和 30 行。我遍历每一列并使用grep 函数通过查找字母a-Z 来识别非数字行。我做了很多测试,它似乎工作正常。但是,我刚刚遇到一个数字是 0.0000000009 的情况,它被 R 翻译成 9e-10。该行/编号被 grep 识别为不是数字,即使它显然是一个数字。我现在的问题是,我怎样才能 grep 字母 a-Z 但排除模式“e-”?这是我的 R 代码:
for(i in 1:ncol(m)) {
if(length(grep("[a-zA-Z]", m[,1])) > 0) { # do something...}
}
【问题讨论】:
-
阿伦,感谢您的评论。我认为当列是一个因素时,您的第一个替代解决方案不起作用,因为在因素变量上应用 as.numeric 并不能解决导致 NA 的问题
-
我认为这很有效......很棒