R-模式(mode)和类(class)

来源:转载

数据模式:mode函数显示任何对象的模式。常见的单个的对象模式是逻辑型(Logical)、数值型(Numeric)、字符型(Character)。

常用到的数据模式是列表(list)。

  • 逻辑型:TRUE和FALSE都是大写字母;转换成数值型时TRUE->1,FALSE->0。
  • 字符型:输入字符型时可以用单引号或者双引号,而输出时都是双引号
  • 列表:允许多种模式的数据,数据框也是一种列表。而矩阵、向量等要求所有数据都属于相同的模式。

数据模式之间的转换:

  • as.character->转换为字符型

  • as.numeric->字符型转换数值型

  • as.logical->字符型转换逻辑型

数据类型:class函数显示对象的类。常见的有向量(Vertor),数据框(Frame),矩阵(Matrix),因子(Factor)。

  • 因子:在统计建模和制图函数中对因子进行特殊处理。但是用mode函数检查时一律返回为数值型。
  • 日期和时间:虽可以以字符型存储,但不方便应特殊处理。

数据模式和数据类型的检测:

  • 列表允许多种模式的数据,若想获得各个组成部分的模式和类时,可以使用sapply函数。
  • 数据框的模式是list,类是data.frame。
  • 有时候mode和class函数返回相同的结果。
  • 以"is."开头的很多函数如is.list,is.factor,is.numeric,is.character等,能让你确认是否跟你预期的相同。

> mylist = list(a = c(1,2,3),b = c('a','b','c'),c = c(TRUE,FALSE),d = factor('house'));

> sapply(mylist,mode)

a b c d

"numeric" "character" "logical" "numeric"

> sapply(mylist,class)

a b c d

"numeric" "character" "logical" "factor"

a = c(1,2,3);

b = c('a','b','c');

c = c(TRUE,FALSE);

d = factor('house');

> is.numeric(a)

[1] TRUE

> is.character(b)

[1] TRUE

> is.logical(c)

[1] TRUE

> is.factor(d)

[1] TRUE

> is.numeric(d)

[1] FALSE

#注意对d并不是数值型,返回FALSE。


 

 


分享给朋友:
您可能感兴趣的文章:
随机阅读: