首页 > 解决方案 > 选择 R 中的字符列,它们是数字

问题描述

我有包含多个数字和字符列(超过 1000 列)的数据集,我只想识别可以转换为数字变量的字符变量。例子:

> Df
  ID var0 var1 var2  var3
1  1   10   1A    a 500.2
2  2    8    2    b   400
3  3    9    7    c 603.1
4  4    2 aa4e    d   700
> str(Df)
'data.frame':   4 obs. of  5 variables:
 $ ID  : chr  "1" "2" "3" "4"
 $ var0: num  10 8 9 2
 $ var1: chr  "1A" "2" "7" "aa4e"
 $ var2: chr  "a" "b" "c" "d"
 $ var3: chr  "500.2" "400" "603.1" "700"

这里需要的列是:ID 和 var3

提前致谢!

标签: rdataframe

解决方案


如果有两个,您可以grepl在不测试中使用。sapply.

sapply(Df, function(x) !any(grepl("[^0-9.]", x)))
#   ID  var0  var1  var2  var3 
# TRUE  TRUE FALSE FALSE  TRUE 

或者:

sapply(Df, function(x) all(!is.na(as.numeric(x))))
#   ID  var0  var1  var2  var3 
# TRUE  TRUE FALSE FALSE  TRUE 

推荐阅读