博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
R 笔记
阅读量:3967 次
发布时间:2019-05-24

本文共 6270 字,大约阅读时间需要 20 分钟。

文章目录

数据类型

  • 矢量
  • 列表
  • 矩阵
  • 数组
  • 因子
  • 数据帧

向量vectors

(即坐标运算)

vectors = c(1,5,7,8,9,5)print(vectors)print(class(vectors))#character

list列表

一个r对象,在列表中啥都能放,包括函数,整型,向量等

list1 <-list(c(2,5,30),9,5,sin)#向量,整型,函数sinprint(list1)//输出[[1]][1] 2 5 3[[2]][1] 21.3[[3]]function (x)  .Primitive("sin")

Matrices 矩阵

# 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"

array数组

# 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"

factors因子

# 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    yellow green Levels: green red yellow# applying the nlevels function we can know the number of distinct values[1] 3

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 Age1   Male  152.0     81  422   Male  171.5     93  383 Female  165.0     78  26

变量

R的变量命名和其他有些许不同,如下:

变量名 合法性 原因
var_name2. 有效 有字母,数字,点和下划线
VAR_NAME% 无效 有字符’%’。只有点(.)和下划线允许的。
2var_name 无效 以数字开头
.var_name, var.name 有效 可以用一个点(.),但启动点(.),不应该后跟一个数字。
.2var_name 无效 起始点后面是数字使其无效。
_var_name 无效 开头_这是无效的

赋值也有些许不同

将右值赋给左变量:

<-

<<-

=

将左值赋给右变量:

->

->>

变量命名空间

在R中可以通过ls()函数来对环境中命名的变量进行操作或者查找,实例:

//显示所有变量print(ls())//模式匹配变量# List the variables starting with the pattern "var".print(ls(pattern = "var"))  //rm删除变量//单个rm(var.3)print(var.3)//全部删除rm(list = ls())print(ls())

运算符

算术运算符

运算符 描述
+ 两个向量相加 v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v+t)它产生以下结果 -10.0 8.5 10.0
- 两个向量相减 v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v-t)它产生以下结果 --6.0 2.5 2.0
* 两个向量相乘 v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v*t)它产生以下结果 -16.0 16.5 24.0
/ 将第一个向量与第二个向量相除 v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v/t)当我们执行上面的代码,它产生以下结果 -0.250000 1.833333 1.500000
%% 两个向量求余 v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v%%t)它产生以下结果 -[1] 2.0 2.5 2.0
%/% 两个向量相除求商 v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v%/%t)它产生以下结果 -[1] 0 1 1
^ 将第二向量作为第一向量的指数 v <- c( 2,5.5,6) t <- c(8, 3, 4) print(v^t)它产生以下结果 -[1] 256.000 166.375 1296.000

关系运算符

运算符 描述
> 检查第一向量的每个元素是否大于第二向量的相应元素。 v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v>t)它产生以下结果 -FALSE TRUE FALSE FALSE
< 检查第一个向量的每个元素是否小于第二个向量的相应元素。 v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v < t)它产生以下结果 -TRUE FALSE TRUE FALSE
== 检查第一个向量的每个元素是否等于第二个向量的相应元素。 v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v == t)它产生以下结果 -FALSE FALSE FALSE TRUE
<= 检查第一向量的每个元素是否小于或等于第二向量的相应元素。 v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v<=t)它产生以下结果 -TRUE FALSE TRUE TRUE
> = 检查第一向量的每个元素是否大于或等于第二向量的相应元素。 v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v>=t)它产生以下结果 -FALSE TRUE FALSE TRUE
!= 检查第一个向量的每个元素是否不等于第二个向量的相应元素。 v <- c(2,5.5,6,9) t <- c(8,2.5,14,9) print(v!=t)它产生以下结果 -TRUE TRUE TRUE FALSE

逻辑运算符

运算符 描述
& 它被称为元素逻辑AND运算符。 它将第一向量的每个元素与第二向量的相应元素组合,并且如果两个元素都为TRUE,则给出输出TRUE。 v <- c(3,1,TRUE,2+3i) t <- c(4,1,FALSE,2+3i) print(v&t)它产生以下结果 -TRUE TRUE FALSE TRUE
| 它被称为元素逻辑或运算符。 它将第一向量的每个元素与第二向量的相应元素组合,并且如果元素为真,则给出输出TRUE。 v <- c(3,0,TRUE,2+2i) t <- c(4,0,FALSE,2+3i) print(v|t)它产生以下结果 -TRUE FALSE TRUE TRUE
! 它被称为逻辑非运算符。 取得向量的每个元素,并给出相反的逻辑值。 v <- c(3,0,TRUE,2+2i) print(!v)它产生以下结果 -FALSE TRUE FALSE FALSE
运算符 描述
&& 称为逻辑AND运算符。 取两个向量的第一个元素,并且只有两个都为TRUE时才给出TRUE。 v <- c(3,0,TRUE,2+2i) t <- c(1,3,TRUE,2+3i) print(v&&t)它产生以下结果 -TRUE
|| 称为逻辑OR运算符。 取两个向量的第一个元素,如果其中一个为TRUE,则给出TRUE。 v <- c(0,0,TRUE,2+2i) t <- c(0,3,TRUE,2+3i) print(v||t)它产生以下结果 -FALSE

赋值运算符

运算符 描述
<−or=or<<− 称为左分配 v1 <- c(3,1,TRUE,2+3i) v2 <<- c(3,1,TRUE,2+3i) v3 = c(3,1,TRUE,2+3i) print(v1) print(v2) print(v3)它产生以下结果 -3+0i 1+0i 1+0i 2+3i 3+0i 1+0i 1+0i 2+3i 3+0i 1+0i 1+0i 2+3i
->or->> 称为右分配 c(3,1,TRUE,2+3i) -> v1 c(3,1,TRUE,2+3i) ->> v2 print(v1) print(v2)它产生以下结果 -3+0i 1+0i 1+0i 2+3i 3+0i 1+0i 1+0i 2+3i

其他运算符

运算符 描述
: 冒号运算符。 它为向量按顺序创建一系列数字。 v <- 2:8 print(v)它产生以下结果 -2 3 4 5 6 7 8
%in% 此运算符用于标识元素是否属于向量。 v1 <- 8 v2 <- 12 t <- 1:10 print(v1 %in% t) print(v2 %in% t)它产生以下结果 -TRUE FALSE
%*% 此运算符用于将矩阵与其转置相乘。 M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE) t = M %*% t(M) print(t)它产生以下结果 -[,1] [,2] [1,] 65 82 [2,] 82 117

决策

if…else if…else

if () {    } else if (){    } else {    }

switch

  • 如果 expression 的值不是字符串,那么它被强制为整数。
  • 在交换机中可以有任意数量的 case语句。 每个案例后面都跟要比较的值和冒号。
  • 如果整数的值在 1nargs() - 1(参数的最大数目)之间,则对 case条件的相应元素求值并返回结果。
  • 如果表达式求值为字符串,那么该字符串与元素的名称匹配。
  • 如果有多个匹配,则返回第一个匹配元素。
  • 无默认参数可用。
  • 在没有匹配的情况下,如果有一个未命名的元素…它的值被返回。 (如果有多个这样的参数,则返回错误。)

case中可以是函数或者一条语句等

switch(expression, case1, case2, case3....)//实例x <- switch(   3,   "first",   "second",   "third",   "fourth")print(x)//输出[1] "third"//实例switch(1,2*3,sd(1:5),runif(3))  #返回(2*3,sd(1:5),runif(3))list中的第一个成分 switch(2,2*3,sd(1:5),runif(3))  #返回第二个成分switch(3,2*3,sd(1:5),runif(3))  #返回第三个成分/或switch (2,    case = 2*3,case = sd(1:6),case = runif(3))//输出[1] 6[1] 1.581139[1] 0.31508117 0.04610938 0.19489747

R包

在R语言中使用一个第三方库包,其实也是同python一样如果需要在环境中使用包,除了环境中自带的包,其他都要事先加载出来,安装。

获取包含R包的库位置

.libPaths()

获取所有已安装的所有软件包列表

library()

获取在当前环境中已加载的包

search()

有两种方法来添加新的R包。 一个是直接从CRAN目录安装,另一个是将软件包下载到本地系统并手动安装它。

直接从CRAN安装

以下命令直接从CRAN网页获取软件包,并将软件包安装在R环境中。 可能会提示您选择最近的镜像。 根据您的位置选择一个。

install.packages("Package Name") # Install the package named "XML". install.packages("XML")

手动安装包

转到链接下载所需的包。 将包作为.zip文件保存在本地系统中的适当位置。

现在您可以运行以下命令在R环境中安装此软件包。

install.packages(file_name_with_path, repos = NULL, type = "source")# Install the package named "XML"install.packages("E:/XML_3.98-1.3.zip", repos = NULL, type = "source")

装载包到库中

在包可以在代码中使用之前,必须将其加载到当前R环境中。 您还需要加载先前已安装但在当前环境中不可用的软件包。

使用以下命令加载包:

library("package Name", lib.loc = "path to library")# Load the package named "XML"install.packages("E:/XML_3.98-1.3.zip", repos = NULL, type = "source")

循环

Sr.No. 循环类型和描述
1 多次执行一系列语句,并简化管理循环变量的代码。
2 在给定条件为真时,重复语句或语句组。 它在执行循环体之前测试条件。
3 像while语句,不同之处在于它测试在循环体的端部的条件。
Sr.No. 控制语句和描述
1 终止循环语句,并将执行转移到循环后立即执行的语句。
2 next语句模拟R语言switch语句的行为。

转载地址:http://oncki.baihongyu.com/

你可能感兴趣的文章
Flutter UI基础 - AppBar中标题文字如何居中
查看>>
Flutter UI基础 - Drawer 抽屉视图与自定义header
查看>>
Flutter UI基础 - GridView
查看>>
Flutter UI基础 - 使用InkWell给任意Widget添加点击事件
查看>>
OC WKWebView的使用
查看>>
Flutter UI基础 - Image.asset 图片铺满布局
查看>>
Flutter UI基础 - Row、Column详解
查看>>
Flutter UI基础 - 添加背景图片
查看>>
Flutter UI基础 - 布局之Row/Column/Stack
查看>>
Flutter UI基础 - 层叠布局Stack的使用
查看>>
Go - 解决 go get 超时问题
查看>>
SQL - SQL Server 之遍历数据集合的几种方法
查看>>
SQL - SQL Server 之处理JSON数据
查看>>
SQL - SQL Server 之WHILE循环的坑
查看>>
SQL - SQL Server 性能优化之SQL语句总结
查看>>
Docker - docker-compose常用命令
查看>>
SQL - SQL Server判断字符串中是否有中文
查看>>
SQL - SQL Server查询近7天的连续日期
查看>>
SQL - SQL Server中如何取年、月、日 -DATEPART函数
查看>>
SQL - SQL Server 一列或多列重复数据的查询,删除
查看>>