Advertisement

R语言学习——向量矩阵

阅读量:

系统地开始深入学习R语言;过去也多次接触过这一编程语言;但由于时间间隔较长等因素的影响导致知识容易遗忘;因此为了更好地巩固所学知识;决定将每次学到的知识点进行整理归纳;以便防止遗忘的同时也能促进个人进步;同时也可以在博客上与其他学习者交流经验;共同提高水平;目前刚开始记录这些知识点的学习过程;因此基本上都是以一本书为主的学习资料;以后会适当增加阅读的深度;并结合实际操作来加深理解;以期能够不断获取新的知识储备并及时总结经验教训

复制代码
    ##-----------------------------------------------------
    ##R语言和基本操作
    ##-----------------------------------------------------
    ##基本运算
    3 ** 2 + sqrt(4)
    ##赋值
    x1 <- 0:10; x1
    ##绘制余弦曲线
    x = 0: 100
    y = cos(x*2*pi/100)
    plot(x,y,type="l")
    ##-----------------------------------------------------
    ##R语言的向量
    ##-----------------------------------------------------
    ##常见的赋值方法
    x = c(1:3, 10:13);x
    x1 = 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:5
    5:1
    1:5-1
    1:(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);l
    l1 = w > 3; l1
    ##逻辑与:& 逻辑或:|
    1<2 & 2<3
    1>2 | 2<3
    ##all判断一个逻辑向量是否都为真
    all(w>3)
    ##any判断一个逻辑向量是否有真值
    any(w>3)
    ##is.na判断一个向量的元素是否缺失
    is.na(c(1,2,NA))
    ##逻辑值可以强制转化成整数值,TRUE为1,FALSE为0
    age=30
    c("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)
    ages
    ages["zhang"]
    ages[c("zhang","Li")]
    x[c(1,3)]=c(188,189); x
    x[c(1,3)]=0; x
    x[]=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中的列表以及字典功能相对应

全部评论 (0)

还没有任何评论哟~