R语言学习——向量矩阵

来源:互联网 发布:爱尔兰和北爱尔兰 知乎 编辑:程序博客网 时间:2024/05/19 15:43

最近开始系统学习R语言,以前也多次学习,但基本也都学学就忘记了,现在打算把每次学的东西都整理一下,防止忘记。也可以通过博客和大家交流,一起进步。现在刚开始写,所以基本都偏向于一本书,以后多读一下,加上实践,可能会有新的知识,所以我也会随时改进日志。

##-----------------------------------------------------##R语言和基本操作##-----------------------------------------------------##基本运算3 ** 2 + sqrt(4)##赋值x1 <- 0:10; x1##绘制余弦曲线x = 0: 100y = cos(x*2*pi/100)plot(x,y,type="l")##-----------------------------------------------------##R语言的向量##-----------------------------------------------------##常见的赋值方法x = c(1:3, 10:13);xx1 = c(1,2)x2 = c(3,4)x = c(x1,x2);x##向量长度x = c(12:78)x1 = length(x); x1##向量的运算:向量可以使用加、减、乘、除等运算,相当于对每个元素进行运算。##乘方:**或^ 整除:%/% 求余数:%%x = c(1,2,6.25)y = x ** 2 + 1; y ##等长度的进行加减乘除乘方等运算是等位置的进行运算c(1,2,3)+c(10,20,30)/c(2,4,5)##长度不同的进行运算,长度短的会被循环使用。c(1,2,3) + c(10,20,30,-2,-4,-9,0,0,1)##设置输出结果的有效位数options(digits = 7)##高级运算z = c(-3, -9, 8, 2, 0, -8)##最大值和最小值range(z)##最大值max(z)##最小值min(z)##排序order(z)z[order(z)]z[order(z,decreasing=TRUE)]##任何值和缺失值的运算结果都是缺失值c(1,2, NA) - c(1,NA,4)##求和、均值、方差、标准差sum(z)mean(z)var(z)sd(z)##如果z是矩阵,那么var(z)求得是协方差阵,如果z的长度为n=2,那么自由度为2,如果n>2,那么自由度为n-1##-----------------------------------------------------##R语言产生有规律的数列##-----------------------------------------------------##产生零向量numeric(4)1:55:11:5-11:(5-1)##seq()的使用seq(-2,3)seq(from = -2, to = 3)seq(0,1,0.1)seq(0,by=0.2,1)seq(by = 0.2, from = 0.1)seq(1, length=5)seq(length=5, to=8)##产生向量的下标序列w = c(4, -2, 7, 0)seq(along=w)##rep函数rep(w,2)rep(c(10,28),c(2,3))##-----------------------------------------------------##R语言逻辑向量##-----------------------------------------------------l = c(TRUE, TRUE, FALSE);ll1 = w > 3; l1##逻辑与:& 逻辑或:|1<2 & 2<31>2 | 2<3##all判断一个逻辑向量是否都为真all(w>3)##any判断一个逻辑向量是否有真值any(w>3)##is.na判断一个向量的元素是否缺失is.na(c(1,2,NA))##逻辑值可以强制转化成整数值,TRUE为1,FALSE为0age=30c("young","old")[(age>44)+1]##-----------------------------------------------------##字符型向量##-----------------------------------------------------cl = c("x","tan(x)","年龄"); cl##连接字符串paste("I", "love", "homeland")paste(c("X","Y"),"=",1:4)paste("result",1:5,sep=".")paste(c("123","234"), collapse="*")##-----------------------------------------------------##向量下标运算##-----------------------------------------------------x = seq(1,8,2); x[2]##改变元素的值x[2] = 125; x##取正整数值的下标向量1到length(x)x[c(1,3)]x[1:2]x[c(1,3,2,1)]c("a","b","c")[rep(c(2,1,3),3)]##取负整数值的下标向量x[c(-1,-3)]##取逻辑值的下标向量x[x>3]x[x<(-9)]##取字符型下标向量ages = c(Li=33, zhang=29, Liu=18)agesages["zhang"]ages[c("zhang","Li")]x[c(1,3)]=c(188,189); xx[c(1,3)]=0; xx[]=0; x##计算一个分段函数y = numeric(length(x))y[x<0]=1-x[x<0]y[x>=0]=1+x[x>=0]
x=c(-2.3, 4, -5,7); y
##把向量变成矩阵X = t(c(1,2,3))X = matrix(c(1,2,3,4),2,2)

R语言的向量功能很强大,也很灵活。各种输入方式都会有相应的结果,这也就要求我们要很小心,因为可能虽然没有报错,但是结果不是我们想要的。比如说长度不一样的向量相除。
        R语言是为非计算机专业设计的一门高级语言,所以在数据的类型上不像C++,Java,Python那样严格限制,数据结构也都进行了一些合并。R语言的向量可以相当于python的list和字典。




0 0
原创粉丝点击