R语言语法基础一

Hello world

  1. #这里是注释
  2. myString = "hello world"
  3. print(myString)
  4. [1] "hello world"

基本数据类型

  1. print(class(TRUE)) #logical
  2. print(class(5)) #Numeric
  3. print(class(2L)) #Integer
  4. print(class(2+5i)) #Complex
  5. print(class("hello")) #Character
  6. print(class(charToRaw("hello"))) #Raw

对象类型

vector向量,使用c函数创建

  1. apple = c('red',"green","yellow")
  2. print(apple)
  3. [1] "red" "green" "yellow"

List列表,可以包含不同类型的元素

  1. list1 = list(c(2,5,3),21.3,sin)
  2. print(list1)
  3. [[1]]
  4. [1] 2 5 3
  5. [[2]]
  6. [1] 21.3
  7. [[3]]
  8. function (x) .Primitive("sin")

Matrices矩阵

创建二维数据集

  1. M = matrix(data = c('a','b','c','d','e','f'),
  2. nrow = 2,
  3. byrow = TRUE)
  4. print(M)
  5. [,1] [,2] [,3]
  6. [1,] "a" "b" "c"
  7. [2,] "d" "e" "f"

Array数组

数组相比矩阵,能够具有任意数量的维度

  1. a = array(c(1,2),dim = c(3,3,2))
  2. print(a)
  3. , , 1
  4. [,1] [,2] [,3]
  5. [1,] 1 2 1
  6. [2,] 2 1 2
  7. [3,] 1 2 1
  8. , , 2
  9. [,1] [,2] [,3]
  10. [1,] 2 1 2
  11. [2,] 1 2 1
  12. [3,] 2 1 2

Factor因子

  1. apple_colors = c('g','g','y','r','r','r','g')
  2. factor_apple = factor(apple_colors)
  3. print(factor_apple)
  4. print(nlevels(factor_apple)) #nlevels函数是用来求level的
  5. [1] g g y r r r g
  6. Levels: g r y
  7. [1] 3

DataFrame数据帧

  1. BMI = data.frame(
  2. gender = c("Male","Male","Female"),
  3. height = c(152,171.5,165),
  4. weight = c(81,93,78),
  5. age = c(42,38,26)
  6. )
  7. print(BMI)
  8. gender height weight age
  9. 1 Male 152.0 81 42
  10. 2 Male 171.5 93 38
  11. 3 Female 165.0 78 26

变量

命名规则

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

值得注意的是,a和a.i没有任何关系

  1. a = 1
  2. b = 2
  3. c = 3
  4. #cat函数可以连接多个(中间有空格隔开)
  5. #print函数只能输出一个,但信息更多
  6. cat(a,b,c)
  7. 1 2 3

ls()函数可以列出当前工作空间的变量,可以用很多方法搜索,排序(支持正则)

  1. ls(pattern = "a.[0-9]")
  2. [1] "a.1" "a.2"

rm()删除变量

  1. rm(var1) #删除变量var1
  2. rm(list = ls()) #删除一个列表的变量

运算符

算术运算

都是两个向量对齐,一一计算。如果不对齐会报warning(循环对齐),如果另一个是数字,会自动匹配

  • 加法:+
  • 减法: -
  • 乘法: *
  • 浮点数除法: /
  • 取模: %%
  • 乘除求商: %/%
  • 第二个是第一个的指数: ^

关系运算

也是两两依次比较

  • 大于:>
  • 小于:<
  • 等于:==
  • 大于等于:>=
  • 小于等于:<=
  • 不等于:!=
  1. rm(list = ls())
  2. v1 = c(2, 5.5, 6)
  3. v2 = c(8, 3, 6)
  4. v1 == v2
  5. any(v1 < v2)
  6. all(v1 > v2)
  7. [1] FALSE FALSE TRUE
  8. [1] TRUE
  9. [1] FALSE

逻辑运算

&,|,!就是判断0还是非0,返回布尔值向量

&&,||只考虑两个向量的首元素,返回一个TRUE或者FALSE

其他运算

  1. a = 1:5 #产生一个序列向量
  2. c(1,2) %in% a #依次判断元素是否包含在向量中
  3. t(a) %*% a #说明a默认为列向量,这里求a^T * a

条件控制

If

  1. if (TRUE)
  2. {
  3. print("YES")
  4. } else #这种写法,else不能单独起一行
  5. {
  6. print("NO")
  7. }
  8. #三目运算符
  9. x = c(-1,-2,3,4)
  10. x = ifelse(x<0, 0, x) #relu简单实现
  11. print(x)

Switch

  1. x = switch(
  2. 3,
  3. "first",
  4. "second",
  5. "third",
  6. "fourth"
  7. )
  8. print(x)

包管理

  1. .libPaths() #查看R语言库的位置
  2. library() #列出已经安装的包
  3. search() #列出当前环境中已经加载的包
  4. install.packages("Package Name") #安装包
  5. library(XML) #装载包到当前环境

循环

  1. #for循环
  2. a = 1:5
  3. for(i in a)
  4. print(i)
  5. #repeat
  6. total = 0
  7. repeat
  8. {
  9. total = total + 1;
  10. print(total);
  11. if (total > 6)
  12. break;
  13. }
  14. #while
  15. x = 1
  16. while (x < 5)
  17. {
  18. x = x + 1
  19. print(x)
  20. }

next语句代替了continue

小结

R的基本语法暂时总结到这里,下一次继续学习函数之后的部分。

R语言语法基础一的更多相关文章

  1. R语言语法基础二

    R语言语法基础二 重塑数据 增加行和列 # 创建向量 city = c("Tampa","Seattle","Hartford"," ...

  2. R语言编程艺术(3)R语言编程基础

    本文对应<R语言编程艺术> 第7章:R语言编程结构: 第9章:面向对象的编程: 第13章:调试 ============================================== ...

  3. R语言学习-基础篇1

    ###第一周:R基础 rm(list = ls())  #ctr+L###矩阵相乘,函数diag()a=matrix(1:12,nrow=3,ncol=4)b=matrix(1:12,nrow=4,n ...

  4. 转载 R语言颜色基础设置

    原文链接:http://www.biostatistic.net/thread-5065-1-1.html R语言在画图形的时候,经常遇到颜色设定问题,用户可以根据color.rgb值和hsv值来设定 ...

  5. R语言学习-基础篇

    从五月10日开始自学R in action,将我的学习所得逐渐发布在博客上. chapter1.新手上路 工作空间:存储着所有用户定义的对象(向量,矩阵,函数,数据框,列表): 当前的工目录保存是R用 ...

  6. R语言画图基础参数设置

    Graphical Parameters You can customize many features of your graphs (fonts, colors, axes, titles) th ...

  7. R语言常用基础知识

    seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)),     length.out = NULL, along.with = NULL, ...

  8. R语言语法笔记

    ## 1. 数据输入 ## a$b # 数据框中的变量 a = 15 # 赋值 a <- 15 # 赋值 a = c(1,2,3,4,5) # 数组(向量) b = a[1] # 数组下标,从1 ...

  9. go语言语法基础

    1. go标记 Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号 如:fmt.Println("hello world") 2.行分隔符 在 Go 程序中,一 ...

随机推荐

  1. SqlServer 分页存储过程

    SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[usp_CommonDataResourcePaged ...

  2. 【APUE | 03】文件I/O

    博客链接: inux中的文件描述符与打开文件之间的关系 #include <stdio.h> #include <unistd.h> #include <sys/stat ...

  3. [LeetCode] Best Time to Buy and Sell Stock 6道合集【DP】

    1. Best Time to Buy and Sell Stock 2. Best Time to Buy and Sell Stock II 3. Best Time to Buy and Sel ...

  4. angular 4 开发环境下打包文件过大

    angular 4本地开发环境下,ng server -- port 8080 -o 之后在在浏览器中查看数据请求,其中vendor.bundle.js有8.3mb,而整个传输数据大小为16.3mb ...

  5. MVC和Web API 过滤器Filter

    MVC和Web API Filter(过滤器) ASP.NET MVC 支持以下类型的操作筛选器: ·        授权筛选器.这些筛选器用于实现IAuthorizationFilter和做出关于是 ...

  6. 【演示】在CSS里用calc进行计算

    请阅读 在CSS里用calc进行计算   下面的元素的width,padding,margin都使用了CSS calc进行计算. 简单计算: 100% – 100px 这是经过简单计算的元素宽度 复杂 ...

  7. ghithub中PHPOffice/PHPWord的学习

    1.概念:PHPWord是用纯PHP提供了一组类写入和从不同的文档格式的文件阅读库.PHPWord的当前版本支持微软的Office Open XML(OOXML或处理OpenXML),用于Office ...

  8. BZOJ1095 [ZJOI2007]Hide 捉迷藏 动态点分治 堆

    原文链接https://www.cnblogs.com/zhouzhendong/p/BZOJ1095.html 题目传送门 - BZOJ1095 题意 有 N 个点,每一个点是黑色或者白色,一开始所 ...

  9. Codeforces 1017F The Neutral Zone 数论

    原文链接https://www.cnblogs.com/zhouzhendong/p/CF1017F.html 题目传送门 - CF1017F 题意 假设一个数 $x$ 分解质因数后得到结果 $x=p ...

  10. Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第十一集之安装FastDFS】

    1,安装FastDFS之前,先安装libevent工具包. yum -y install libevent 2,安装libfastcommonV1.0.7工具包.有可能找到新版本的zip压缩包:lib ...