大家好,我是改改!西京学院应用统计专业大三的学生一枚。今天,我将带大家进入一个新的系列R软件的学习,建议大家在学习之前安装R和RStudio软件,话不多说,一起进入我们今天的学习内容吧。
![54003434d13c83ebcbd921069dfa05d5.gif](https://i-blog.csdnimg.cn/blog_migrate/656ef1d5763d1142e0d07525e9855cfa.gif)
1 对象的5种基本类型
(1)数值(numeric:real numbers)
创建变量x,并将其赋值为1,赋值符号为左箭头加一个横杠
![7c332e10a580723896dd90ded7a6fbaf.png](https://i-blog.csdnimg.cn/blog_migrate/b52dfead04e186bae2e091350895c79c.png)
查看变量x的值
![4e05b661223aef4220d79f18c8faf8d1.png](https://i-blog.csdnimg.cn/blog_migrate/a868c09d31e00650f5e33264c41219c5.png)
[1]代表它后面接着的元素是x中的第一个元素,没有方括号的1代表x中存储的内容是1。
用class()函数查看变量x的类型
![288a1036c657bd7db6ab7645fd427503.png](https://i-blog.csdnimg.cn/blog_migrate/887d7a7b7e69f8995668234eb33d23ee.png)
结果显示:x的类型是“numeric”,“numeric”意味着x的类型是数值型变量,并且它的值可以是整数,也可以是小数,比如:
![ef859868f744661c25524c81bb039e38.png](https://i-blog.csdnimg.cn/blog_migrate/8e95706c27bd8e3c41410187dce44175.png)
(2)整数(integer)
如果我们想强调一个整数,只需要在赋值的时候在整数后面加一个大写的L。
![494b6021535eca06bd1e5f590a5bf3c9.png](https://i-blog.csdnimg.cn/blog_migrate/a15e690490d918ff3b0e5ea98d7e55dc.png)
再次用class()函数查看变量x的类型
![dd961815f428c8a11927e5dd48d018cb.png](https://i-blog.csdnimg.cn/blog_migrate/0703af12aa8cf52e413e60d3f2d3616e.png)
结果显示:x的类型是“integer”,“integer”意味着x的类型是整数型变量。这里,我们强调两个细节:
赋值符号
![a731b221687b82bb7394dcb13288fc0e.png](https://i-blog.csdnimg.cn/blog_migrate/72d9dac0804389bbbdb06ce2a1adf8af.png)
用等号代替赋值符号,在99%情况下你都不会遇到任何的报错,但是在极端情况下会产生错误,所以建议大家能用左箭头加一个横杠这样一个符号的话,就尽量用最标准的赋值符号。
R区分大小写
![fccab33f0b51a3ec30abc34c866c21f3.png](https://i-blog.csdnimg.cn/blog_migrate/c515c9cee1a088fe05881199e6e5bf05.png)
![ffe07ce0405d122a49df59f50175c955.png](https://i-blog.csdnimg.cn/blog_migrate/2c9ac80d3033ec2460969bbe8aa67fda.png)
说明x和X是两个变量
(3) 字符(character)
![a9f0254cd78cd2a927001314e64e264f.png](https://i-blog.csdnimg.cn/blog_migrate/bc2a6422188fe83117443af114a83529.png)
(4)复数(complex):1+2i
![a1797ad1caae606591976b3c091c922d.png](https://i-blog.csdnimg.cn/blog_migrate/986fe28147b9994ff690c0a80f9fbcb6.png)
(5)逻辑(logical:True/False)
![8e685918b8b04bdc48ba5cfa52e64393.png](https://i-blog.csdnimg.cn/blog_migrate/1856876049e20b67ddbb2ee6376780a4.png)
注意:R里面的真(TRUE)或假(FALSE)都要用大写。
![54003434d13c83ebcbd921069dfa05d5.gif](https://i-blog.csdnimg.cn/blog_migrate/656ef1d5763d1142e0d07525e9855cfa.gif)
2 属性(attribute)
名称(name)
维度(dimensions:matrix, array)
类型(class)
长度(length)
其具体内容我会在后面的学习中详细解释。
![54003434d13c83ebcbd921069dfa05d5.gif](https://i-blog.csdnimg.cn/blog_migrate/656ef1d5763d1142e0d07525e9855cfa.gif)
3 向量(vector)
向量是一种可以包含多个元素的数据结构。那么,如何在R中创建一个向量呢?今天,小编给大家介绍3种创建向量的方法:
![a41d4a9ca055a27a6b6e59e630dd5fae.png](https://i-blog.csdnimg.cn/blog_migrate/0d2b684e8f3f7a354340aa842b05edbc.png)
(1) 使用vector()函数创建向量
![debeccb4051d2bfd13053f2fb00f88d6.png](https://i-blog.csdnimg.cn/blog_migrate/0c00fb3e6e00dd01997e76f456430012.png)
![74a8039f77209483b5020ec6617b200f.png](https://i-blog.csdnimg.cn/blog_migrate/33ab3f13e41191b1d1a5e7e5d1710190.png)
它包含两个参数:第一个参数是这个向量里参数的类型,第二个参数是这个向量包含的元素个数,举例如下:
![a9cf2bbf527e14dcbf54768fcd76db50.png](https://i-blog.csdnimg.cn/blog_migrate/f81c22cb89e2a10a0385285c8ed5eb25.png)
![68e38b3ec5b02ba65fa4f9e1bc5d3bd9.png](https://i-blog.csdnimg.cn/blog_migrate/ea4632f9e3241bf261eedf6c4e6d2796.png)
变量x是字符型,有10个元素,每个元素是空的。
![a41d4a9ca055a27a6b6e59e630dd5fae.png](https://i-blog.csdnimg.cn/blog_migrate/0d2b684e8f3f7a354340aa842b05edbc.png)
(2) 直接在R中创建向量
![debeccb4051d2bfd13053f2fb00f88d6.png](https://i-blog.csdnimg.cn/blog_migrate/0c00fb3e6e00dd01997e76f456430012.png)
![8903567ee77cff6b8863de35769ba981.png](https://i-blog.csdnimg.cn/blog_migrate/e7571c1739e3831585ca0477b64ff498.png)
![7b51837f5bc8fb1aadf8255c5d44ef8c.png](https://i-blog.csdnimg.cn/blog_migrate/1393c9ff6f725277f5cb6932a63e717a.png)
上述代码中“:”的意思是“到”,变量x1的内容是1,2,3。
![a41d4a9ca055a27a6b6e59e630dd5fae.png](https://i-blog.csdnimg.cn/blog_migrate/0d2b684e8f3f7a354340aa842b05edbc.png)
(3) 用c()函数创建向量
![debeccb4051d2bfd13053f2fb00f88d6.png](https://i-blog.csdnimg.cn/blog_migrate/0c00fb3e6e00dd01997e76f456430012.png)
![9f9acd44363de05cbec000148a8fc680.png](https://i-blog.csdnimg.cn/blog_migrate/db55a73e61c85807e46fd80db594a35b.png)
![af427291b74a3da60a9732ca90b95d66.png](https://i-blog.csdnimg.cn/blog_migrate/a2b4f47212ebbfd762d5b38b735b3204.png)
变量x2的内容是1,2,3。
如果往c()函数中传入的元素类型不同的话,R会强制转换成同一类型的元素。
![a867708e544024199d002214aad9688c.png](https://i-blog.csdnimg.cn/blog_migrate/d3054beb327ea46c272d0e2af3e780d1.png)
![b98e72cd6854370628a82f3cc55fdcb9.png](https://i-blog.csdnimg.cn/blog_migrate/c4b94212ff3885b7a5d8567aa9fb5b59.png)
向量x3共有3个元素,它的类型是字符型,第一个元素的内容是“TRUE”;第二个元素的内容是“10”;第三个元素的内容是“a”,也就是说R强制把三个不同类型的元素都转换成了字符型元素。在这里没有直接书写一个语句进行强制转换,但R中有专门的语句用于进行强制转换,例如:
![3a300e5b9d6daf1a0a295017621d9750.png](https://i-blog.csdnimg.cn/blog_migrate/51bacfb37e7f88f00d2a932d389d57d1.png)
向量x4是一个字符型向量,若想把它强制转换成数值型向量,需用到as.numeric()函数:
![6275cef33fcc52e674e298a69629d236.png](https://i-blog.csdnimg.cn/blog_migrate/e7088d3e5533e2763eb1070f030ac512.png)
这里出现的警告信息的含义是:我们强制转换的后果是引入了缺失值,NA的意思是缺失值,也就是说虽然我们强制把字符型向量转换成数值型向量,但是R不知道如何把a,b,c转换成数字,因此用缺失值代替了这些元素。
以上就是数据结构中关于对象、属性和向量的主要内容,一起来进行一个小结:
![bc6c2fa04e06a01ad9aaecf06ed24f55.png](https://i-blog.csdnimg.cn/blog_migrate/48210448e1911f75a8524f4bd2b41bcd.jpeg)
今天的内容到此结束,希望对初学R的同学有所帮助。这是小编第一次写博文,如有不足,请留言指点,小编会在第一时间回复,如有什么好的想法,小编也非常愿意和你们一起交流讨论,内容不多,但是会不定期更新,感谢关注!
编者:牛改改