本人已经熟悉了matlab相关的操作,因为matlab要收费,不便通用,因此要求另学R语言,写下此文便于大家来实现matlab转R的过程,我会仔细对比两门语言的操作点,想对两门语言的命令差异做研究的人,请着重看第二章。
第一章、下载安装:
地址:https://mirrors.ustc.edu.cn/CRAN/
如图:这里选择window
下载后的文件名为:R-3.5.3-win.exe
安装很简单,都默认安装了。初次打开后是如图的格局
我以前用过matlab,感觉这里类似的命令行结构。
第二章、命令对比学习 (MATLAB&R)
此处一方面凭借matlab经验,一方面参考https://blog.csdn.net/qdvovbp/article/details/50559987博客里的R相关内容,但我都做了细致的重测验。
1、声明向量 : x1 = c(1,3,5,7,9)
matlab中是 x1=[1,3,5,7,9] ,声明列向量则用分号分开
2、找向量的长度 :length(x1)
matlab上相同
3、查看数据类型:mode(x1)
基本数据结构类型有:
- numeric 数值型
- complex 复数型
- character 字符型
- logical 逻辑型
matlab中是class(x1)
4.1、行合并:rbind(x1,x2)
4.2、列合并:cbind(x1,x2,x1)
R中没有行向量列向量的概念吧,向量不分方向。合并成矩阵时需要指明是怎么合成,长度不一致时直接报错 number of rows of result is not a multiple of vector length (arg 1)
但matlab则不同,向量分行列。
如图,对于两个行向量,逗号分隔的拼就拼成了一大行,分好分隔着拼就并列了。
5、平均值:mean(x1)
matlab上相同
6、求和:sum(x1)
matlab上相同
7、连乘:prod(x1)
matlab上相同
8、最小值:min(x1)
matlab上相同
9、最大值:max(x1)
matlab上相同
10、方差:var(x1)
matlab上相同
11、1到6的向量 : 1:10
matlab上相同
12、1到6的向量 都减1 : 1:10-1
matlab上 (1:10)-1
13、取出下标为3的数 : x1[3]
matlab上 x1(3) ,两者都是下标从1开始的,但matlab用小括号
14、取出下标不为3的数 : x1[-3]
matlab上 没这么做过。
15、取出下标为1、2、5的数 : x1[c(1,2,5)]
matlab上 没这么做过。
16、取出元素值大于10小于15的数 : x1[x3>10 & x3<15]
matlab上 没这么做过。
17、1到10且公差为2的数:seq(1,10,by=2)
matlab上 1:2:10
18、1到10且找等分的4个数 :seq(1,10,length=4)
matlab上 linspace(1,10,4)
19、取向量中元素值为2的下标 :which(x1==2)
matlab上 : find(x1 == 2)
20、向量颠倒 :rev(x1)
matlab上 fliplr(x1)
|
请发表评论