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。

 

 

 

  

posted @ 2015-04-14 23:56  记忆的稻草人  阅读(2676)  评论(0编辑  收藏  举报