2019-07-24
一、复数(https://zhuanlan.zhihu.com/p/46574502)
二、取整运算、有效小数、有效数字(https://zhuanlan.zhihu.com/p/46601879)
取整运算(ceiling(),floor(),trunc()和round()):通俗点讲就是将一个小数(浮点数)转化成整数。比如,我们可以将3.42转化为3或者4。
有效小数(round()):将一个小数近似为小数位特定的小数。比如,将3.1415926转化为两位有效小数,即3.14。
有效数字(signif()):将一个数近似为特定有效位数的数字。比如,将23456保留两位有效数字,即23000。
三、向量(https://zhuanlan.zhihu.com/p/46857217,https://zhuanlan.zhihu.com/p/46857217,https://zhuanlan.zhihu.com/p/46984287)
分为数值型向量、字符型向量和逻辑型向量三种类型。
1、向量的创建,查看,增添
向量中的元素必须为同一属性,如果c()函数的参数类型不一致,函数会强制将所有参数变为同一类型,强弱顺序为:character > complex > numeric > integer > logical
1)创建:*1)> ages <- c(4, 7, 6, 5, 6, 7) ## 数值型向量
> colors <- c('red', 'black', 'blue', 'yellow') ## 字符型向量
> booleans <- c(TRUE, FALSE, TRUE, FALSE, TRUE) ## 逻辑型向量
*2)冒号:运算符可用来产生等差级数向量,其使用形式为x:y
*3)seq()函数也是用来产生等差级数向量的,其原型为seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)),length.out = NULL, along.with = NULL, ...)。典型用法有:seq(from, to):等价于from:to运算;seq(from, to, by= ):参数by设置公差的大小,最后元素≤to值;seq(from, to, length.out= ):参数length.out设置输出向量的长度,第一个元素为from值,最后元素的值为to,公差由函数自动计算给出
*4)rep()函数的作用是重复向量中的元素
2)查看-输入向量名称:> colors
[1] "red" "black" "blue" "yellow"
3)增添:> new_ages <- c(12, ages, 17)
> new_ages
[1] 12 4 7 6 5 6 7 17
2、向量的属性--类型,向量长度,平均值、最大值以及最小值等。
1)向量的类型:class()函数
2)向量的大小/向量中元素的个数:length()函数
3)平均值、最大值以及最小值:mean()、max()、min()
3、访问向量中的元素--[]来指定索引,索引从位置1开始。
1)获取向量ages的第二、第三和第六个元素
> ages[c(2, 3, 6)]
[1] 7 6 7
2)访问除第四个元素之外的其它元素
> ages[-4]
[1] 4 7 6 6 7
3)访问大于5的元素
> ages[ages > 5]
[1] 7 6 6 7
4、 修改向量中的元素
通过赋值运算来改变向量中的内容
5、有名称的向量
1)创建有名称的向量--c()函数
如:> new_ages <- c(kim=7, rob=6, tony=12) ## 向量元素的名称分别为'kim', 'rob', 'tony',值分别为7,6,12
> new_ages
kim rob tony
7 6 12
2)给没名称的向量中的每个元素添加名称--names()函数
如:> ages <- c(4, 7, 6, 5, 6, 7) ## 无名称向量
> names(ages) <- c('bob', 'tom', 'lucy', 'andy', 'sandy', 'joe') ## 向量元素命名
> ages
bob tom lucy andy sandy joe
4 7 6 5 6 7
3)元素访问--通过索引(i)和元素名称都可以
ages[i]:返回向量元素的值和名称
ages[[i]]:只返回向量元素的值
ages[元素名称]:返回向量元素的值和名称
ages[[元素名称]]:只返回向量元素的值
4)删除元素的名称--as.vector()函数
如:> new_ages
kim rob tony
7 6 12
> as.vector(new_ages)
[1] 7 6 12
6、向量的基本计算
tip:is.vector()函数来判断变量是否为向量
1)当向量长度相同时,对应元素计算;当向量的长度不同时,短的向量会自动循环补齐至与长向量相同,然后再运算
2)内积操作,用到%*%
7、向量函数(https://bbs.pinggu.org/thread-5641916-1-1.html)
1、mean(x, trim = 0.1):就是先把x的最大的10%的数和最小的10%的数去掉,然后剩下的数算平均。
2、一个“=“”等于赋值,例如x=3;两个“==”等于判断,在if函数里面判断,相当于判断是大于,小于,等于的那种判断。
3、fivenum():最小值、下四分位数、中位数、上四分位数、最大值
4、nchar():字符个数
5、for,while,if和后面的条件之间没有空格();表输出print后加一个空格()
6、identical():比较是否相同
7、runif()函数用于生成从0到1区间范围内的服从正态分布的随机数,每次生成的值都不一样。如runif(6)生成6个,runif(10)生成10个数。
8、"\n":表示换行
9、sub()和gsub()的区别在于,前者只替换第一次匹配的字符串,而后者会替换掉所有匹配的字符串。
例如:将空格字符替换为无
>sub(" ", "", "abc def ghi")
[1] "abcdef ghi"
> ## [1] "abcdef ghi"
> gsub(" ", "", "abc def ghi")
[1] "abcdefghi"
> ## [1] "abcdefghi"