R语言入门系列1--简介和使用方法

时间:2022-06-14 22:18:32

R简介: 第一天接触R语言. R是一个*,免费,源代码开发的软件(类似与python). 可以运行在LINUX, Windows, MacOS等操作系统上, 而且嵌入了一个很方便实用的帮助系统(后面会讲到).
用处: R是一个统计分析软件(对比SPSS, SAS), 用于统计计算, 统计绘图的优秀工具.
特点:

  • 完全免费, 开放源码.
  • R是一种可编程语言: 语法通熟易懂(学了才知道).

R VS Matlab:

  • Matlab有很多工具箱, 功能多, 内容繁杂, 而且体积大(7GB左右); R擅长统计, 有很多包可以方便地安装, 而且体积小;
  • Matlab收费, 而且比较贵, R像python一样完全开源.
  • Matlab和R都可以矩阵运算, Matlab更加强大.
  • 两者的编程我感觉差不多.

基本操作:
在使用R语言之前, 这里默认你已经安装好了R语言, 而且实在LINUX平台上. 在命令行键入:

$ R  # 进入R语言环境
$ help.start() # 执行这个命令会进入R的在线帮助文档[2]

我发现R语言的编程和Matlab极其相似, 比如下面的绘图代码(使用命令行):

> x11()             # 对应Matlab里面的figure,先生成一个用于显示图形的框,不然下一个plot将覆盖上一次的
> x1 = 1:100 # 生成1-100间距为1的100个数
> x2 = x1*2*pi/100 # 对应元素相乘,Matlab里面是点乘(.*)
> Y=sin(x2) # 计算sin
> plot(x2, Y, type='l') # 画图, Matlab里面是plot(x2, Y)
> plot(x2, Y, type='s', main='画图练习',sub='好好练习',xlab='x轴',ylab='y轴') # matlab用xlabel, ylabel, title等命令来实现这些综合显示

注意: x11()是LINUX的图形命令, windows()是windows下的, quartz()是OS X下的.

基本数据类型:

# 向量类型
> data = c(1,5,8) # 相当于Matlab: data=[1,5,8]
> apple = c('red',85) # 相当于Matlab: apple={'red', '85'} (元胞数组)
> apple[1] # 下标从1开始
[1] "red"
> apple[2] # 向量里面好像只能存储一种类型的数据,85被转成字符串了,实验了一下,apple = c(85, 'red') 里面的85虽然在前,但是85仍然被转成了字符串.
[1] "85"

# 列表类型(和python列表,以及Matlab的元胞数组很相似, 可以包含不同类型的元素)
> list1 = list(c(2,5,1), 21, 3, sin) # 包含了"向量, 数字, 数字, 函数"
> list1[1]
[1] 2 5 1

# 矩阵(矩阵在Matlab里面很普遍),仅限两维
# matrix这个函数有点像Matlab里面的reshape函数,通过一个向量创建一个矩阵
> M = matrix(c('a','a','b','c','b','a'), nrow=2, ncol=3,byrow=TRUE)
> M
[,1] [,2] [,3]
[1,] "a" "a" "b"
[2,] "c" "b" "a"

# 数组类型(可以是任意大小)
> a = array(c(1,5), dim=c(3,3,2))
> a
, , 1

[,1] [,2] [,3]
[1,] 1 5 1
[2,] 5 1 5
[3,] 1 5 1

, , 2

[,1] [,2] [,3]
[1,] 5 1 5
[2,] 1 5 1
[3,] 5 1 5

案例1: 在 [1,2] 上画出 y=e2x+sin(3x3) 的图像, 横坐标抽样间隔为0.01:

% Matlab实现
>> x = -1:0.01:2;
>> Y = exp(2.*x)+sin(3.*x.^3);
>> figure, plot(x, Y)
# R实现
> x=seq(-1,2,0.01) # Matlab里面的表达更加简洁
> Y=exp(2*x)+sin(3*x^3)
> x11()
> plot(x, Y, type='l')

案例2: 简单的统计功能

# R语言
> a <- c(15,1,25,1,3,6) # c是concatenation(串联,连接)的缩写,生成一个向量
> mean(a) # [1] 8.5 (求均值)
> sd(a) # [1] 9.628084
> max(a) # [1] 25
% Matlab
>> a = [15,1,25,1,3,6];
>> mean(a) % ans=8.500
>> std(a) % ans=9.6281
>> max(a) % ans=25

案例3: R函数
R函数通过关键词function创建

# R 返回值为在函数体中评估计算的最后一个表达式的值
function_name <- function(arg_1,arg_2,...){ # 函数名称 <- function关键词(形参列表){函数体}
function_body
}

% Matlab
function function_name(arg_1, arg_2,...)
function_body
;
end

未完待续…

[1] An introduction to R.
[2] R在线帮助系统.
[3] R语言教程.
[4] R语言入门实例.