2.3 类型判别及转换

在R语言中,可以用 is.xxx()系列函数来判断数据是否为指定类型,用as.xxx()系列函数将数据转换为指定类型。基本类型数据的判断及转换函数如下表所示。

表 2.2: 数据类型判别及转换
数值型 复数型 字符型 逻辑型 空值 空数据
is.numeric() is.complex() is.character() is.logical() is.na() is.null()
as.numeric() as.complex() as.character() as.logical() null as.null()

这里有几点需要注意的:

  1. 数值型转逻辑型时,0被转换为FALSE ,非零值被转换为TRUE。

  2. 字符串转数值时,若该字符串能被转换成数字,则返回那个数字;若不能转换,则返回缺失值。

  3. 字符串转逻辑型时,字符串 “TRUE”、“True” 和 “T” 被转换成 TRUE;“FALSE” 和 “F”被转换成FALSE;其余被转换成 NA。

  4. 逻辑型转换为数值时, TRUE被转换为1,FALSE被转换为0。转字符串时TRUE和T均被转换成”TRUE”,FALSE和F被转换成 “FALSE”。

对于数据类型的判别,在R中提供了多种方式:

  • class( )可获取一个数据对象所属的类,它的参数是对象名称。

  • str( )可获取数据对象的结构组成。

  • mode( )和storage.mode( )可获取对象的存储模式。

  • typeof( )获取数据的类型或存储模式。

    要了解这些函数的其它功能可以在R里面进行查询,方法是用问号加上面的函数名就可以,如:?str 。