运行基础
安装完成:在命令行使用R
唤起开发环境(win需要安装后将bin目录增加进全局变量。)
运行脚本:在命令行中使用Rscript xxx.R
进行运行
数据类型
- 基础:常用的R对象为,向量,列表,矩阵,数组,因子,数据帧。
- 基础R原子向量(基础数据类型),逻辑(TRUE,FALSE),数字(包括浮点和整数等值),整数(0L),复数(3 + 2i),字符(varchar),原生(存储的基本物理地址)
- 创建向量
c()
apple <- c('red','green',"yellow");
print(apple);
print(class(apple));
# 结果"character"
- 创建列表
list()
list1 <- list(c(2,5,3),21.3,sin);
print(list1);
- 创建矩阵
matrix()
M = matrix( c('a','a','b','c','b','a'), nrow = 2, ncol = 3, byrow = TRUE)
print(M)
- 创建数组
array()
a <- array(c('green','yellow'),dim = c(3,3,2))
print(a)
这里使用了一个dim属性,也就是创建数组的时候,创建一个3*3的矩阵,最外层两个的数组,也就是说相当于下面的数组
array(
'0'=>array(
'0'=>array(
'0'=>'',
'1'=>'',
'2'=>'',
),
'1'=>array(
'0'=>'',
'1'=>'',
'2'=>'',
),
'2'=>array(
'0'=>'',
'1'=>'',
'2'=>'',
)
),
'1'=>array(
……
),
)
- 创建因子
factor()
它将向量存储在向量中的元素的不同值作为标签。标签始终是字符。
apple_colors <- c('green','green','yellow','red','red','red','green')
factor_apple <- factor(apple_colors)
print(factor_apple)
print(nlevels(factor_apple))
- 创建数据帧
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)
R语言变量
R语言中的变量可以存储原子向量,原子向量组或许多R对象的组合
# Assignment using equal operator.
var.1 = c(0,1,2,3)
# Assignment using leftward operator.
var.2 <- c("learn","R")
# Assignment using rightward operator.
c(TRUE,1) -> var.3
cat(var.1)
cat(var.2)
cat(var.3)
注意:使用cat()
和print()
的区别是cat能打印所有的内容,print只能打印某一元素的原子变量
-
->
赋值为右赋值(表达式) -
<-
左赋值(表达式) -
=
只将值赋予 -
ls()
函数可以使用模式来匹配变量名 -
rm()
用于删除变量
R语言运算符
- 算术运算符(+,-,*,/,求余%%,求模%/%,求指数幂^)
- 关系运算符(>,<,==,<=,>=,!=)
- 逻辑运算符(&,|,!,&&,||)
- 赋值运算符(<-,<<-,=左分配符;->,->>右分配符)
- 其他运算符(冒号运算符:,成员运算符%in%,转置相乘%*%)
v <- 2:8;
print(v);
冒号运算符,用于创建2-8的值
成员运算符(%in%) - 该运算符用于识别元素是否属于向量。
v1 <- 8 ;
v2 <- 12;
t <- 1:10;
print(v1 %in% t) ;
print(v2 %in% t) ;
转置相乘(%*%) - 该运算符用于将矩阵与其转置相乘。
M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE);
t = M %*% t(M);
print(t);
R语言逻辑结构
-
if
,if……else
,switch
-
repeat循环
,while循环
,for循环
-
break语句
,next语句
v <- c("Hello","loop")
cnt <- 2
repeat {
print(v)
cnt <- cnt+1
if(cnt > 5) {
break
}
}
v <- LETTERS[1:6]
for ( i in v) {
if (i == "D") {
next
}
print(i)
}
R函数
使用关键字function来创建一个R函数,如下
function_name <- function(arg_1, arg_2, ...) {
Function body
}
如下方式调用和创建函数(含参数)
# Create a function with arguments.
new.function <- function(a = 10, b = 20) {
result <- a * b
print(result)
}
# Call the function without giving any argument.
new.function()
# Call the function with giving new values of the argument.
new.function(11, 22)
R函数字符串
注意:
- 字符串开头和结尾的引号应为双引号或双引号,他们不能混合。
- 双引号可以插入到以单引号开始和结尾的字符串中。
- 单引号可以插入到以双引号开始和结尾的字符串中。
- 双引号不能插入到以双引号开始和结尾的字符串中。
- 单引号无法插入到以单引号开始和结尾的字符串中。
- 字符串操作
连接字符串 - paste()函数
a <- "Hello"
b <- 'How'
c <- "are you? "
print(paste(a,b,c))
print(paste(a,b,c, sep = "-"))
print(paste(a,b,c, sep = "", collapse = ""))
R包
-
.libPaths()
这个函数可以忽的包含R包的位置 -
library()
这个函数获取所有安装的软件包列表 -
search()
获取R环境(当前)加载的所有包
安装新包 -
install.packages("XML")
获取到新的包,如果是第一次使用安装的话,会要求选择包的下载地址选择。或者使用install.packages(file_name_with_path, repos = NULL, type = "source")
安装源代码(这里有个问题,如果是Linux中使用安装的话,一般不会安装成功/(ㄒoㄒ)/~~,需要在本地先安装很多需要的包(apt-get install命令)才能安装) - 加载程序包
library("package Name", lib.loc = "path to library")
# Load the package named "XML"
install.packages("D:/XML_3.98-1.3.zip", repos = NULL, type = "source")
常用函数:
-
cbind()
函数连接多个向量来创建数据帧 -
rbind()
函数合并两个数据帧。 -
merge()
函数合并两个数据帧(数据帧必须具有相同的列名称,合并发生) -
melt()
列转为行cast()
列数据运算。改变数据的形状以获得所需的形状
R对数据的获取
-
getwd()
函数来检查R工作区指向哪个目录,使用setwd()
函数设置新的工作目录 -
read.csv()
函数读取当前工作目录中可用的CSV文件 -
info <- subset(data, 筛选条件)
对于数据集中数据的获取 -
write.csv()
函数用于创建csv文件 -
writeBin(object, con) readBin(con, what, n )
用于读取和写入二进制文件
使用xlsx文件需要安装xlsx包,xml文件需要安装XML文件,json文件安装rjson,网络数据需要安装curl等包