【R】常用的R语言简单命令行、和matlab数据的转换操作

在实验中使用到R语言封装的工具包,涉及到R和matlab之间的一些操作。

R安装

R环境的搭建比较简单,具体的安装包可以到官网上下载,直接安装。

包的安装

导入包,使用install.packages(package)
但是这只是讲包下载到了本地,每次要用的时候,使用library(package)将包引入当前环境。
若要使用包中的函数,引入后使用命令行:package.function(paras)即可调用。

路径

获取当前路径getwd()
更改路径 setwd('F:/folder/file'),需要注意,这里路径要用/,和Windows的表达相反

函数

functionA:直接查看函数代码
functionA(paras):调用函数
函数自定义:

printNum<-function(num){
     
	for(i in 1:num){
     
		print(i)
	}
}

如果函数有返回值,则可以使用一个变量来接收这个返回值,注意,R语言中不需要声明变量

calSquare<-function(x){
     
	return x*x
}
result<-calSquare(10)

一些函数/操作

总结了一下目前用到的一些自带用法/函数,这里暂不详细描述。后续持续更新……

c():一个常用而好用的函数,c表示combine之意。可以用来创建数组:

strs<-c('a','b','c') #相当于创建了一个内容为['a','b','c']的字符串数组strs
nums<-c(12,34,56,78,90) #创建了一个数组

paste(a, 'b', c, sep='_'):主要用于字符串拼接,参数可以是字符串,也可以是字符串变量,sep表示字符串之间的连接字符,默认是空格,如果在拼接路径时不需要连接符,可以将sep设置为''
mode(x):可用于查看变量类型
matrix():创建矩阵
list():创建列表
unlist(list):将List变量展开成vector类型
list1[i,]:获取list1的第i行全部数据
list1[,j]:获取list1的第j列全部数据

处理数据对象的使用函数1

函数 用途
length(obj) 显示对象中元素/成分的数量
dim(obj) 显示某个对象的维度
str(obj) 显示某个对象的结构
class(obj) 显示某个对象的类或类型
mode(obj) 显示某个对象的模式
names(obj) 显示某对象中各个成分的名称
c(obj1, obj2, obj3,…) 将对象并入一个向量
cbind(obj1, obj2, obj3,…) 按列合并对象
rbind(obj1, obj2, obj3,…) 按行合并对象
object 输出某个对象
head(obj) 列出某个对象的开始部分
tail(obj) 列出某个对象的最后部分
ls() 显示当前的对象列表
rm(obj1, obj2, obj3,…) 删除一个或者多个对象。
newobj <- edit(obj) 编辑对象另存为newobj
fix(obj) 直接编辑对象

和matlab的相互操作

首先我们知道,matlab中的数据一般存储为.mat格式,R语言可以导入多种格式的数据,其中就包括.mat数据,这里只讲解R如何操作.mat数据。
首先需要借助R.matlab工具包。使用install.packages来下载,在引入当前环境。

  • 读取.mat文件:
filename<-file.path(filepath) #filepath:文件所在路径,不包括文件名
data<-readMat(filename) #将filename文件的内容以mat形式读出
  • .mat文件:
writeMat(filename, A=A) #将A变量写入filename文件的A变量

其他

在实验中,我发现了一种通过c()生成的长得很像Listnumeric对象,大概的样子长这样:

result
1

这个时候,我不能像操作List一样用索引来取,可能有更加好的方法,但是我在网上发现了一种新奇的解法:
首先先将numeric对象转化为factor对象:

f<-factor(obj)

再使用以下命令行:

res<-as.numeric(levels(f))

levels函数将result的值1取了出来,在将这个值读作numeric对象。


  1. [美]Robert I. Kabacoff 著,王小宁等 译 ,R语言实战(第2版) ↩︎

你可能感兴趣的:(学术日常操作,R)