1.R语言介绍
R语言是用于统计分析,图形表示报告的编程语言和软件环境。R语言是由新西兰奥克兰大学的Ross Ihaka和Robert Gentleman创建的,目前由R Development Core Team开发和维护。R语言的核心是一种解释型的计算机语言,允许使用分支和循环以及函数的模块化编程。 R语言允许与C语言,C++,.Net,Python或FORTRAN语言编写的过程集成,以提高效率。R语言是根据GNU通用公共许可证免费提供的,并为各种操作系统(如Linux,Windows和Mac)提供预编译的二进制版本。R语言是免费软件,GNU项目的官方部分称为GNU S
2.环境安装
下载地址:https://mirrors.tuna.tsinghua.edu.cn/CRAN/ 直接下载地址:https://mirrors.tuna.tsinghua.edu.cn/CRAN/
打开GUI
安装成功!
3.R语言基本语法
> str = "hello"
> print(str)
[1] "hello"
>
上图程序中,第一个语句定义了一个字符串变量str,然后分配一个字符串“Hello,World~!”,下一个语句print()用于打印存储在变量str中的值。
R脚本文件
通常,我们通过在脚本文件中编写R代码,然后再通过名为Rscript的R解释器的帮助下,在命令提示符下执行这些脚本。 所以下面演示如何在一个名为test.R的文本中编写代码,如下 -
> myString <- "CXL"
> print(myString)
[1] "CXL"
>
将上述代码保存在test.R文件中,并在Linux命令提示符下执行,如下所示。即使您使用Windows或其他系统,语法将保持不变。
$ Rscript test.R
当我们运行上述程序时,会产生以下结果(Windows)
C:\Users\Administrator>F:
F:>cd worksp\R
F:\worksp\R>dir
2017/08/22 21:52 <DIR> .
2017/08/22 21:52 <DIR> ..
2017/08/22 21:53 85 test.R
1 个文件 85 字节
2 个目录 53,158,862,848 可用字节
F:\worksp\R>Rscript test.R
[1] "Hello, World!"
F:\worksp\R>
注释
注释就像在R程序中帮助文本,并且在执行实际程序时被解释器忽略。单个注释在语句的开头使用#写成如下:
# My first program in R Programming
R不支持多行注释,但可以执行以下操作:
if(FALSE) {
"This is a demo for multi-line comments and it should be put inside either a single
OR double quote"
}
myString <- "Hello, World!"
print ( myString)
R虽然上述注释由R解释器执行,但不会干扰您的实际编程代码。所以我们可以把要注释的内容放入单引号或双引号中。
4.R语言数据类型
向量 列表 矩阵 数组 因子 数据帧
这些对象中最简单的是向量对象,并且向量对象有六种数据类型的原子向量,也称为六类向量。 其他R对象是建立在原子向量之上的。六类向量类型如下表所示 -
在R编程中,非常基本的数据类型是叫作向量的R对象,它们保存不同类的元素,如上所示。 请注意在R语言中,类型的数量不仅限于上述六种类型。 例如,我们可以使用许多原子向量并创建一个数组,其类型将成为数组。
1.向量
当要创建具有多个元素的向量时,应该使用c()
函数,表示将元素组合成一个向量。
# Create a vector.
apple <- c('red','green',"yellow");
print(apple);
# Get the class of the vector.
print(class(apple));
上面示例代码,执行结果如下 - > apple <- c(‘red’,‘green’,“yellow”);
> print(apple);
[1] "red" "green" "yellow"
> print(class(apple));
[1] "character"
>
2.列表
列表是一个R对象,它可以包含许多不同类型的元素,如向量,函数,甚至其中的另一个列表。
# Create a list.
list1 <- list(c(2,5,3),21.3,sin);
# Print the list.
print(list1);
R上面示例代码,执行结果如下 -
[[1]]
[1] 2 5 3
[[2]]
[1] 21.3
[[3]]
function (x) .Primitive("sin")
3.矩阵
矩阵是二维矩形数据集。 它可以使用向量输入到矩阵函数来创建。
# Create a matrix.
M = matrix( c('a','a','b','c','b','a'), nrow = 2, ncol = 3, byrow = TRUE)
print(M)
当执行上述代码时,会产生以下结果 -
[,1] [,2] [,3]
[1,] "a" "a" "b"
[2,] "c" "b" "a"
4.数组
矩阵只能有两个维度,数组可以是任意数量的维数。数组函数采用一个dim属性,创建所需的维数。 在下面的例子中,我们创建一个有两个元素的数组,每个元素都是3x3个矩阵。
# Create an array.
a <- array(c('green','yellow'),dim = c(3,3,2))
print(a)
结果如下
, , 1
[,1] [,2] [,3]
[1,] "green" "yellow" "green"
[2,] "yellow" "green" "yellow"
[3,] "green" "yellow" "green"
, , 2
[,1] [,2] [,3]
[1,] "yellow" "green" "yellow"
[2,] "green" "yellow" "green"
[3,] "yellow" "green" "yellow"
5.因子
因子是使用向量创建的R对象。 它将向量存储在向量中的元素的不同值作为标签。标签始终是字符,无论它是输入向量中是数字,还是字符或布尔等。它们在统计建模中很有用。因子使用factor()函数创建。nlevels函数给出了级别的计数。
# Create a vector.
apple_colors <- c('green','green','yellow','red','red','red','green')
# Create a factor object.
factor_apple <- factor(apple_colors)
# Print the factor.
print(factor_apple)
print(nlevels(factor_apple))
结果:
[1] green green yellow red red red green
Levels: green red yellow
# applying the nlevels function we can know the number of distinct values
[1] 3
6.数据帧
数据帧是表格数据对象。与数据帧中的矩阵不同,每列可以包含不同的数据模式。 第一列是数字,而第二列可以是字符,第三列可以是逻辑类型。它是一个长度相等的向量列表。数据帧使用data.frame()函数创建。
# Create the data frame.
BMI <- data.frame(
gender = c("Male", "Male","Female"),
height = c(152, 171.5, 165),
weight = c(81,93, 78),
Age = c(42,38,26)
)
print(BMI)
结果:
gender height weight Age
1 Male 152.0 81 42
2 Male 171.5 93 38
3 Female 165.0 78 26