创建R-project
脚本编辑器
脚本编辑器
控制台
对象/变量列表,历史命令
文件/图片/帮助
设置字体
TOOLS-global options-appareance-
与R交互方式
session
控制台输入命令-逐行运行
脚本编辑器,将代码放入脚本-选中运行
运行的快捷钱:CTRL+ENTER
‘#’表示注释
脚本的保存 默认保存在工作目录 R project在哪里,工作目录就在哪里
出错
1、检查命令
是否真的函数出错
2、环境是否对
函数是否加载
没反应 出现大于号,表示已经运行完成
控制台右上角出现红色,表示正在运行。
命令不完整 光标放入控制台最后一行,esc可以退出
出现提示信息,只要没有出错就不用管。
数据类型
数值型
字符型 需要加引号
逻辑型 TURE FALSE NA
判断数据类型函数 class(),将要判断的内容写在括号里
as族函数实现数据类型之间的转换
as.numeric() #将其他数据类型转换为数值型
as.logical() #将其他数据类型转换为逻辑型
as.charactor() #将其他数据类型转换为字符型
is族函数,判断返回值为TRUE或者FALSE
is.numeric() #是否数值型数据
数据结构
向量 向量是数据框单独拿出的一列,一个向量只能有一种数据类型
数据框 数据框约等于表格
矩阵
列表
向量的生成
1、用c()逐一放到一起
2、连续的数字用冒号
1:15
3、有重复的用rep,有规律的用seq,产生正态分布的随机数用rnorm
rep('name',times=3) #rep('name',3)
[1] "name" "name" "name"
seq(from=1,to=10,by=2) #seq(1,10,2)
[1] 1 3 5 7 9
rnorm(10,mean = 3,sd=1) #10个均值为3标准差为1的正态分布随机数
[1] 2.312311 2.807461 3.754154 3.821252 4.873431 3.592244
[7] 4.538984 3.921063 2.783121 3.521947
4、通过组合,产生更复杂的向量
paste0(rep('sample',times=7),seq(from=4,to=30,by=4))
paste0(rep('gene',times=15),1:15)
数据类型转换的优先顺序
对单个向量进行的操作
1、赋值给一个变量名
x=
x<-
2、对单个向量进行的操作
初级统计:
max(x) #最大值
min(x) #最小值
range(x) #max和 min
which.max(x) #最大值下标
which.min(x) #最小值下标
mean(x) #均值
median(x) #中位数
var(x) #方差
sd(x) #标准差
sum(x) #总和
常用函数
sort(x) #排序
length(x); #长度,或者元素个数
unique(x);#去重复
table(x) #重复值统计
对两个向量的操作
逻辑比较
简单数学运算
连接 paste(x,y,sep=':')
交集,并集,差集:
intersect(x,y)
union(x,y)
setdiffx,y)
循环补齐:当两个变量长度不相等的时候,短的循环补齐。
按照要求选择元素
问题:从1000 个基因名中,选指定的 30 个。
思考:
1000个基因名赋值给向量 x,30个基因名赋值给 y
x %in% y
返回多少个逻辑值,挑选结果为TRUE 的。
1、x %in% y
2、向量筛选(取子集):[ ],将 TRUE 对应的值挑选出来, FALSE 丢弃。
3、修改向量中的某个元素
x[4]<-20 #将第四个位置的数改成20
x[x>30]<-20 #将x中大于30的数改成20
例题:生成 100 个随机数 : rnorm (n=100,mean=0,sd=18)
将小于2 的统一改为 2 ,将大于 2 的统一改为 2
> a<-rnorm(n=100,mean = 0,sd=18)
> a[a<(-2)]<-(-2);a[a>2]<-2;a
选出x中除了倒数第二个以外的名字
x[-(length(x)-1)]