如何区分文本与R中的数字和缺失值?

如何区分文本与R中的数字和缺失值?,r,text,replace,R,Text,Replace,数据集中有一个变量包含三种类型的值:文本(字符串)、数字和缺少的值。它们现在都存储为一个因子。我想将文本内容与数值和缺少的值区分开来。我怎么能得到它 Data <- data.frame(x=c("100","20","home","","30")) Data您可以使用正则表达式分别提取文本、数字和缺失索引: grep("[:alpha:]+", Data$x) # [1] 3 grep("[0-9]+", Data$x) # [1] 1 2 5 grep("^\\s*$", Dat

数据集中有一个变量包含三种类型的值:文本(字符串)、数字和缺少的值。它们现在都存储为一个因子。我想将文本内容与数值和缺少的值区分开来。我怎么能得到它

Data <- data.frame(x=c("100","20","home","","30"))

Data您可以使用正则表达式分别提取文本、数字和缺失索引:

grep("[:alpha:]+", Data$x)
# [1] 3

grep("[0-9]+", Data$x)
# [1] 1 2 5

grep("^\\s*$", Data$x)
# [1] 4
要获取实际值,请使用
value=TRUE

grep("[:alpha:]+", Data$x, value = TRUE)
# [1] "home"

grep("[0-9]+", Data$x, value = TRUE)
# [1] "100" "20"  "30"

grep("^\\s*$", Data$x, value = TRUE)
# [1] ""
[:alpha:::+
匹配任何字母表一次或多次

[0-9]+
将任何数字匹配一次或多次


^
匹配字符串开头,
$
匹配字符串结尾,
\\s*
匹配空格零次或多次,因此
^\\s*$
只匹配空格零次或多次。

使用
is.numeric
is.na
?但是您应该向我们展示这些数据。它只会提供字符串或缺失值的数据,因此我无法区分缺失值和字符串。稍后我将向您展示我的数据。