在我写这篇的时候,是3月8日,祝各位女生节日快乐。
而且今天也是漫威新电影《惊奇队长》上映的日子啊!!!!!
好了,学R
检查变量和工作区
1.类
类是一个很重要的定义,python中也有类,很多人说当你用python开始写类的时候,你python也学的差不多了。嗯,R中也有类的定义。
“类”(class),R中所有的变量都会有一个类,用来表明此变量是什么属性,比如数字向量是numeric类。逻辑向量是logical类。
在R中可以使用函数class(my_variable)来查询变量的类。
> a <- c(1,2,3,4)
> a
[1] 1 2 3 4
> class(a)
[1] "numeric"
1.1不同类型的数字
R中包括一共三种不同的数字类型:浮点值numeric、整数integer、复数complex.
> class(sqrt(1:10))
[1] "numeric"
> class(3 + 1i)
[1] "complex"
> class(1)
[1] "numeric"
> class(1L)
[1] "integer"
> class(0.5 : 4.5)
[1] "numeric"
> class(1:5)
[1] "integer"
1.2其他通用类
除了数字类、逻辑类、向量,R中还有三个类:用于储存文本的字符character,储存类别数据的因子factor,比较罕见的储存二进制数据的原始值raw。
其中需要重点介绍的就是因子factor。
在很多语言中,类比数据用整数来表示,比如gender中1代表female,2代表male。因为类别和传统的纯文本不是一个概念,R找到了一个比较好的办法将二者结合,那就是因子。
因子,即有标签的整数。
> gender <- factor(c('male', 'female', 'female', 'male', 'male'))
> gender
[1] male female female male male
Levels: female male
> nlevels(gender)
[1] 2
> as.integer(gender)
[1] 2 1 1 2 2
在底层因子的值被储存为整数而不是字符,这样可以令内存的使用十分的高效。
> gender_char <- sample(c('female', 'male'), 1000, replace = TRUE)#sample函数对‘female'和'male’随机取样1000次。
> gender_fac <- as.factor(gender_char)
> object.size(gender_char)
8160 bytes
> object.size(gender_fac)
4560 bytes
当然在对因子就行操作的时候把因子转换为字符串通常会比较方便。
> as.character(gender)
[1] "male" "female" "female" "male" "male"
以上代码参照《学习R》
网友评论