1. 工作目录
1.1 切换工作目录
可以理解为项目路径,这里切成想要的位置.但这是临时的,下次还是默认目录.
setwd('~/workspace/R_basic')
getwd()
通过全局设置修改工作目录.
1.2 创建项目
点击上图的project创建项目.
可以选择已存在目录或者新建目录,这里选择新建目录.
之后可以修改项目名以及项目的上一级目录
新建项目后,在Linux终端查看,可以看到两个文件.
我们运行getwd()会发现自动切换到项目路径.
2. 基础语法
2.1 向量
2.1.1 向量定义
R定义向量要用c()包围.
var.1 = c(0,1,2,3)
print(var.1)
#如果是连续的整数
temp = 1:10
#如果是有规律的数列
temp = seq(1,10,2) # 1,3,5,7,9
#重复数列
temp = rep(1:3,times=3) # 1 2 3 1 2 3 1 2 3
temp = rep(1:3,each=2) # 1 1 2 2 3 3
2.1.2 向量取名
var.2 = ('a','b','c','d')
names(var.1)#返回var.1的向量名
names(var.1) = var.2#给var.1取名
2.1.3 向量取值
使用中括号,请注意,R索引从1开始.
var.1[2]
也可以一次性取多个值.向量的下标要么是数字,要么是向量.
var.1[c(3, 1)]
#当然也可以按名称取值,比如看下面
var.1[c('a','d')]
#同样可以按逻辑取值
var.1[var.1 < 2]
var.1[var.1 == 2]
#这段代码实际等于
var.1[c(T,T,F,F)]
2.1.4 向量运算
(1) 以向量为单位的运算直接+-x/,这个太基础了看这个吧Click.
var.1 + 3
# 3 4 5 6
(2) 用函数计算
mean(var.1+3)#4.5
#也可以用循环
sum = 0
for(i in var.1){
sum = sum + i
}
print(sum/length(var.1))
最后我想声明一点,R语言的原子数据类型是向量,即使我们写a=3,但实际代码是a=c(3).
以及,与数组不同,向量可以随时添加数据.
score = c(11,1,32)
names(score) = c('aa','bb','cc')
score
#aa bb cc
#11 1 32
score[4] = 1111
score
# aa bb cc
# 11 1 32 1111
2.2 表格
似乎官方名叫数据框.
2.2.1 表格创建
调用read函数读取文件
read.table('dog_info.tsv')
read.table(file='dog_score.tsv',row.name=1,head=T)
#表示row在一定列
#head=T表示存在列名.
#当表格左上角不存在字时,就会自动识别行名和列名
这是用代码读取,还一个方式是用图形化界面.
当然还可以代码创建
data.frame(S1 = c(1,2,3), S2 = c(4,5,6))#第一列,第二列
# S1 S2
# 1 1 4
# 2 2 5
# 3 3 6
data.frame(row.names = c(1,999,3), S2 = c(4,5,6))#行名,第一列
# S2
# 1 4
# 999 5
# 3 6
2.2.2 表格信息
获取行名、列名
rownames(dog_info)
colnames(dog_info)
# "age" "info"
取值的三种方式.
- 按位置取值
#获取第三行的全部信息
dog_info[3,]
#获取第三行某列信息
dog_info[3,1]
#也可以按数组取值
dog_info[c(1,3),c(1)]
- 按名称取值
dog_info['xiaoli','info']
- 按逻辑取值
将年龄
<6的狗狗取出.
# 将表中某列的数据取出
dog_info$age
# [1] 6 5 4 5 6 3
dog_info[dog_info$age < 6,]
2.3 矩阵
我们可以用代码将数据框转为矩阵,但注意的是如果数据框内的数据类型不完全相同,会被全部判为字符串类型.
dog_score = as.matrix(dog_score)
# res:
yuwen shuxue wuli
maomao 88 55 44
xiaoli 77 77 99
aiqi 66 88 77
huihui 55 55 99
luma 44 99 88
tiantian 99 11 22
2.3.1 矩阵运算
- 逐个元素
矩阵也有类似基本运算.
as.matrix(dog_score) + 3
- 按行/列
rowSums(dog_score)
#maomao xiaoli aiqi huihui luma tiantian
# 187 253 231 209 231 132
colSums(dog_score)
- 计算相关系数
cor(dog_scores)
# 任意两列间计算相关系数
2.4 函数
主要介绍一些函数.
2.4.1 round
四舍五入.
x = 1.33333
round(x,digit=2)# 1.33
2.4.2 ceiling
向上取整.
ceiling(x)# 2