R语言语法基础一
R语言语法基础一
Hello world
#这里是注释
myString = "hello world"
print(myString)
[1] "hello world"
基本数据类型
print(class(TRUE)) #logical
print(class(5)) #Numeric
print(class(2L)) #Integer
print(class(2+5i)) #Complex
print(class("hello")) #Character
print(class(charToRaw("hello"))) #Raw
对象类型
vector向量,使用c函数创建
apple = c('red',"green","yellow")
print(apple)
[1] "red" "green" "yellow"
List列表,可以包含不同类型的元素
list1 = list(c(2,5,3),21.3,sin)
print(list1)
[[1]]
[1] 2 5 3
[[2]]
[1] 21.3
[[3]]
function (x) .Primitive("sin")
Matrices矩阵
创建二维数据集
M = matrix(data = c('a','b','c','d','e','f'),
nrow = 2,
byrow = TRUE)
print(M)
[,1] [,2] [,3]
[1,] "a" "b" "c"
[2,] "d" "e" "f"
Array数组
数组相比矩阵,能够具有任意数量的维度
a = array(c(1,2),dim = c(3,3,2))
print(a)
, , 1
[,1] [,2] [,3]
[1,] 1 2 1
[2,] 2 1 2
[3,] 1 2 1
, , 2
[,1] [,2] [,3]
[1,] 2 1 2
[2,] 1 2 1
[3,] 2 1 2
Factor因子
apple_colors = c('g','g','y','r','r','r','g')
factor_apple = factor(apple_colors)
print(factor_apple)
print(nlevels(factor_apple)) #nlevels函数是用来求level的
[1] g g y r r r g
Levels: g r y
[1] 3
DataFrame数据帧
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
变量
命名规则
| 变量名 | 合法性 | 原因 |
|---|---|---|
| var_name2. | 有效 | 有字母,数字,点和下划线 |
| VAR_NAME% | 无效 | 有字符'%'。只有点(.)和下划线允许的。 |
| 2var_name | 无效 | 以数字开头 |
| .var_name, var.name | 有效 | 可以用一个点(.),但启动点(.),不应该后跟一个数字。 |
| .2var_name | 无效 | 起始点后面是数字使其无效。 |
| _var_name | 无效 | 开头_这是无效的 |
值得注意的是,a和a.i没有任何关系
a = 1
b = 2
c = 3
#cat函数可以连接多个(中间有空格隔开)
#print函数只能输出一个,但信息更多
cat(a,b,c)
1 2 3
ls()函数可以列出当前工作空间的变量,可以用很多方法搜索,排序(支持正则)
ls(pattern = "a.[0-9]")
[1] "a.1" "a.2"
rm()删除变量
rm(var1) #删除变量var1
rm(list = ls()) #删除一个列表的变量
运算符
算术运算
都是两个向量对齐,一一计算。如果不对齐会报warning(循环对齐),如果另一个是数字,会自动匹配
- 加法:+
- 减法: -
- 乘法: *
- 浮点数除法: /
- 取模: %%
- 乘除求商: %/%
- 第二个是第一个的指数: ^
关系运算
也是两两依次比较
- 大于:>
- 小于:<
- 等于:==
- 大于等于:>=
- 小于等于:<=
- 不等于:!=
rm(list = ls())
v1 = c(2, 5.5, 6)
v2 = c(8, 3, 6)
v1 == v2
any(v1 < v2)
all(v1 > v2)
[1] FALSE FALSE TRUE
[1] TRUE
[1] FALSE
逻辑运算
&,|,!就是判断0还是非0,返回布尔值向量
&&,||只考虑两个向量的首元素,返回一个TRUE或者FALSE
其他运算
a = 1:5 #产生一个序列向量
c(1,2) %in% a #依次判断元素是否包含在向量中
t(a) %*% a #说明a默认为列向量,这里求a^T * a
条件控制
If
if (TRUE)
{
print("YES")
} else #这种写法,else不能单独起一行
{
print("NO")
}
#三目运算符
x = c(-1,-2,3,4)
x = ifelse(x<0, 0, x) #relu简单实现
print(x)
Switch
x = switch(
3,
"first",
"second",
"third",
"fourth"
)
print(x)
包管理
.libPaths() #查看R语言库的位置
library() #列出已经安装的包
search() #列出当前环境中已经加载的包
install.packages("Package Name") #安装包
library(XML) #装载包到当前环境
循环
#for循环
a = 1:5
for(i in a)
print(i)
#repeat
total = 0
repeat
{
total = total + 1;
print(total);
if (total > 6)
break;
}
#while
x = 1
while (x < 5)
{
x = x + 1
print(x)
}
next语句代替了continue
小结
R的基本语法暂时总结到这里,下一次继续学习函数之后的部分。
R语言语法基础一的更多相关文章
- R语言语法基础二
R语言语法基础二 重塑数据 增加行和列 # 创建向量 city = c("Tampa","Seattle","Hartford"," ...
- R语言编程艺术(3)R语言编程基础
本文对应<R语言编程艺术> 第7章:R语言编程结构: 第9章:面向对象的编程: 第13章:调试 ============================================== ...
- R语言学习-基础篇1
###第一周:R基础 rm(list = ls()) #ctr+L###矩阵相乘,函数diag()a=matrix(1:12,nrow=3,ncol=4)b=matrix(1:12,nrow=4,n ...
- 转载 R语言颜色基础设置
原文链接:http://www.biostatistic.net/thread-5065-1-1.html R语言在画图形的时候,经常遇到颜色设定问题,用户可以根据color.rgb值和hsv值来设定 ...
- R语言学习-基础篇
从五月10日开始自学R in action,将我的学习所得逐渐发布在博客上. chapter1.新手上路 工作空间:存储着所有用户定义的对象(向量,矩阵,函数,数据框,列表): 当前的工目录保存是R用 ...
- R语言画图基础参数设置
Graphical Parameters You can customize many features of your graphs (fonts, colors, axes, titles) th ...
- R语言常用基础知识
seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)), length.out = NULL, along.with = NULL, ...
- R语言语法笔记
## 1. 数据输入 ## a$b # 数据框中的变量 a = 15 # 赋值 a <- 15 # 赋值 a = c(1,2,3,4,5) # 数组(向量) b = a[1] # 数组下标,从1 ...
- go语言语法基础
1. go标记 Go 程序可以由多个标记组成,可以是关键字,标识符,常量,字符串,符号 如:fmt.Println("hello world") 2.行分隔符 在 Go 程序中,一 ...
随机推荐
- Oracle数据库中字符型字段按数字排序
今天在转换数据时,遇到了一个主键排序的问题.字符型的主键,保存的都是数字,数据导过来以后发现数据排序都是乱的,就想着按数字规则排序. 但发现to_number总是报错,就想着里面应该是有字符存在.后来 ...
- 一脸懵逼学习HBase的搭建(注意HBase的版本)
1:Hdfs分布式文件系统存的文件,文件存储. 2:Hbase是存储的数据,海量数据存储,作用是缓存的数据,将缓存的数据满后写入到Hdfs中. 3:hbase集群中的角色: ().一个或者多个主节点, ...
- ES6中const、let与var的对比详解
对比 声明方式 变量提升 作用域 初始值 重复定义const 否 块级 需要 不允许let 否 块级 不需要 不允许var 是 函数级 不需要 允许 变量提升:const 和 l ...
- [BJOI2018]双人猜数游戏
题解: 彻彻底底的思维题???还是挺难的.. 首先连样例解释都没给..没看题解搞了很久 大概就是 一个人要根据另一个人的决策来猜数 可以去看洛谷那篇题解的解释 然后我们用$f[A/B][i][j][k ...
- [转]PO BO VO DTO POJO DAO概念及其作用(附转换图)
来源:http://www.blogjava.net/vip01/archive/2013/05/25/92430.html J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨论问题的时候 ...
- Failed to create Accelerated Display. Please check the display hardware and drivers meet the minimum requirements.
ArcGIS Runtime for WPF开发中Map设置了属性UseAcceleratedDisplay="True",报错: Sample: LocalMap Error: ...
- 【转】PropertyGrid控件中的多级显示
运行效果: 解决方案: MainForm.cs public partial class MainForm : Form { public MainForm() { InitializeCompone ...
- Codeforces 982E Billiard 扩展欧几里德
原文链接http://www.cnblogs.com/zhouzhendong/p/9055728.html 题目传送门 - Codeforces 928E 题意 一束与坐标轴平行或者成$45^\ci ...
- IdentityServer4.AccessTokenValidation
IdentityServer4.AccessTokenValidation Authentication handler for ASP.NET Core 2 that allows acceptin ...
- Hive| DDL| DML
类型转换 可以使用CAST操作显示进行数据类型转换 例如CAST(' 转换成整数1:如果强制类型转换失败,如执行CAST('X' AS INT),表达式返回空值 NULL. : jdbc:hive2: ...