vlambda博客
学习文章列表

R语言入门基础——基础操作篇(一)

经过之前的基础教学,我们可以进入下一个基础教学阶段,那么教学开始。

1、赋值

什么叫赋值呢?

解释起来太麻烦了直接上实践

从图上可以看到a<-1的这个过程就叫赋值,就是把a这个字母赋予一个含义,现在的是为1的,在程序框中输入a就会显示出a的含义,当然这种赋值是可以覆盖的再看图中我又输入了一个a<-1+1的代码,可以看到我再输入a查看含义的时候就发现a表示的含义变了,赋值也可以被看做是一种储存就比如1+1=2,如果直接在程序框里输入1+1会得到结果2,但是不会被保存,这时候如果使用赋值就可以保存下来就像上面写的那样保存到a里去。当然不是什么东西都可以被赋值。

R语言入门基础——基础操作篇(一)

像图中这样阿拉伯数字和符号是不可以被赋值的。

2、数据类型

说完赋值,再说说R可以识别的数据类型,以及各数据类型之间如何转化的。
下表中就是R可识别的数据类型,逻辑型的举例中有个NA我怕有的人不明白还是解释下NA表示空值,因为在我们拿R做数据处理以及数据可视化的时候有可能碰到导入的数据有出现缺失为空,这个时候R会默认用NA来表示空。当然数据中出现空值是需要对数据进行处理的,如何处理会在后面细说。

数据类型

中文意思

举例

numeric

数值型

2 , 1.1 , -5

logical

逻辑型

True , False , NA

character

字符型

你好” , ”hello”

complex

复数型

3i , 8i ,1+5i

integer

整数型

1,2,3,4(必须为整数)

说完R可以识别的数据,接下来说说字符串的判断,见下表。

数据类型

判断函数

转化函数

numeric

is.numeric

as.numeric

logical

is.logical

as.logical

character

is.character

as.character

complex

is.complex

as.complex

integer

is.integer

as.complex

现在开始实践

R语言入门基础——基础操作篇(一)

就像图中所写的那样,对b做判断给出的结论是TRUE是因为b中储存的都是数值型数据,所以判断b是否为数值型数据时给出的结论是正确,同理判断c给出的结论是错误的是因为c中储存的有数值型数据还有字符型数据的原因。
其他几个函数的判断也是这样就不多说了。
说完判断函数再来说说转化函数,以上图的c为例子当你判断完后发现c中有字符型数据,想要把字符型数据转化成数值型数据就需要用到上表中的as.numeric这个函数。
使用方法如下

这里要解释一下为什么4后面不是we而是NA,因为we是字符型数据,把字符型数据转化成数值型数据这是不合理的,准确来说是把字母汉字之类的字符型数据转换成数值型数据是不行的,所以在转化的时候会产生NA。对于这种情况有两种解决方法第一种把它删除,第二种把字符型数据数值化,这里说的数值化不是说直接用as.numeric来转化而是用代替比如说是否喜欢一个东西,有喜欢和不喜欢,我们把它数值化成1和2,1表示喜欢,2表示不喜欢,虽然这样看起来没什么用,但是如果判断某件事和是否喜欢一个东西的关系的时候就很有用了。

3、对象的数据类型
说完数据类型的转换,现在来说说R中包含的对象类型,R中包含许多的对象类型,每个对象类型可以容纳的数据类型又各不相同,具体看下表。

对象类型

允许存储的数据类型

是否允许同一个对象有多种数据类型

向量

数值型、字符型、复数型、逻辑型

因子

数值型、字符型

数组

数值型、字符型、复数型、逻辑型

矩阵

数值型、字符型、复数型、逻辑型

数据框

数值型、字符型、复数型、逻辑型

时间序列

数值型、字符型、复数型、逻辑型

列表

数值型、字符型、复数型、逻辑型

表上的这几种对象类型我下一篇会逐个讲解,现在先讲讲查看对象类型可以用哪些函数,R中可以用来查询对象类型的函数有class,mode,typeof,格式如下:
class(x)  #用于查看数据的类
mode(x)   #用于查看数据的大类
typeof(x)  #用于查看数据的细类
其中x表示要查找的对象。
既然说了如何查看对象的类型,那么肯定也要说下怎么看对象里的数据类型,代码如下:
#使用class函数查看对象的数据类型
sapply(x,class)
#使用mode函数查看对象的数据类型
sapply(x,mode)
#使用typeof查看对象的数据类型
sapply(x,typeof)
这么说可能不生动,还是来动手写会比较深刻,先创建几个数据类型,代码如下:
d<-data.frame(c1=c(1,2,-3,-1),c2=c(1:4),c3=TRUE,c4=c('你好','hello'),stringsAsFactors=F)sapply(d,class)
sapply(d,mode)
sapply(d,typeof)
运行结果如下:

从结果可以看出 sapply(d,mode)可以用来查看大类,c2列是整数型,整数型也可以看作是数值型的一种, sapply(d,class)可以查看得更细一些, sapply(d,typeof)是在class的基础上更细的方法。
这一篇的内容就到这里,喜欢的可以点个关注或者点个在看分享出去。