R基础快速入门

运行基础

安装完成:在命令行使用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等包

链接