学习小组Day5笔记-MN

“生信星球(微信公众号:生信星球)”的课程学习笔记。

写在前面的tips:

  1. R代码中的符号均为英文符号。
  2. 向量由元素组成,元素可以是字符串或者数字。
  3. 表格在R语言中称为数据框。
  4. 数据类型
  • 向量
  • 矩阵
  • 数组
  • 数据框
  • List

1.向量

1. 向量和标量的区别

元素可以是数字也可以是字符串。


变量、标量、向量的关系

2. 赋值语句

>x<-3#赋值3
> x <- c(1,2,3)#赋值向量。c()是常见向量格式。
> x
[1] 1 2 3
> x <- 1:10#赋值1-10连续整数
> x
 [1]  1  2  3  4  5  6  7  8  9 10
  • seq()函数
> x <- seq(1,10,by=0.5)#赋值范围1-10、步长为0.5的数。
> x
 [1]  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5  6.0
[12]  6.5  7.0  7.5  8.0  8.5  9.0  9.5 10.0
> x <- seq(0,1,length.out = 11)#赋值范围0-1,平分为11个数。
> x
 [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
> x <- seq(1,9,by = 2)#赋值范围1-9,步长为2。
> x
[1] 1 3 5 7 9
> seq(1,9,by=3)#赋值范围1-9,步长为3
[1] 1 4 7
> seq(17)#赋值1-17范围的整数
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17
> seq(1:17)#赋值1-17范围的整数
 [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17
  • rep()函数
> x <- rep(1:3,times=2)#赋值1-3的整数,整体重复两遍
> x
[1] 1 2 3 1 2 3
> rep(1:3,2)#赋值1-3的整数,整体重复两遍
[1] 1 2 3  1 2 3 
> rep(1:4,each=2)#赋值1-4的整数,每一个重复两遍
[1] 1 1 2 2 3 3 4 4
> rep(1:4,c(1,2,1,2))#赋值1-4的整数,第1个和第3个重复1遍,第2个和第4个重复2遍
[1] 1 2 2 3 4 4
> rep(1:4,each=2,len=4)#赋值1-4的整数,每一个重复两遍,但只显示前4个数
[1] 1 1 2 2
> rep(1:4,each=2,len=10)#赋值1-4的整数,每一个重复两遍,显示10个数,不够的重新循环
 [1] 1 1 2 2 3 3 4 4 1 1
> rep(1:4,each=2,times=3)#赋值1-4的整数,每一个重复两遍,共循环3次
 [1] 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4

想查看变量的赋值,可以看右上角environment。

2. 从向量中提取元素

提取元素都用中括号

  • 按元素位置提取
> x #X的值
[1] 1 2 3 1 2 3
> x[4] #提取X中第4个值
[1] 1
> x[-4]#提取除第4个值以外的值
[1] 1 2 3 2 3
> x[2:4] #提取X中第2-4个值
[1] 2 3 1
> x[-(2:4)] #提取除第2-4之外的其他所有值
[1] 1 2 3
> x[c(1,5)]#提取第1个和第5个值
[1] 1 2
  • 按元素数值提取
> x[x==2]#提取值为2的元素
[1] 2 2
> x[x<0]#提取小于0的元素
integer(0)
> x[x %in% c(1,2,5)]#提取在c(1,2,5)中存在的元素
[1] 1 2 1 2

2. 数据框

读取数据框

> setwd("/Users/mn/Documents/R/Study")
> setwd("/Users/mn/Documents/R/Study")#到达工作目录,待读取文件存储在这个目录下
> x <- read.csv('doudou.txt')#读取文件
> x
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
  • 读取本地数据
    read.table
> read.table(file="huahua.txt",sep="\t",header = T)
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
> a <- read.table(file="huahua.txt",sep="\t",header = T)
> a
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA

sep表示分隔符,txt用sep="\t",csv用sep=","。
header=T/True,说明有标题行;header=F/False,说明没有标题行。

  • 设置行名和列名
> read.csv('doudou.txt')
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
> colnames(x)#显示所有列名
[1] "X1" "X2"
> rownames(x)#显示所有行名
[1] "1" "2" "3" "4" "5"
> colnames(x)[1]<-("bioplanet")#将第一列的列名改为bioplanet

修改行名

X<-read.csv(file = "huahua.txt",sep = " ",header =T,row.names=1)#最后row.names的意思是修改第一列为行名

使用read.函数时,一定一定要注意文件的分隔符是什么!!!

  • 数据框导出
    write.table(X,file = "yu.txt",sep = ",",quote=F)#quote=F表示字符串不加引号,quote默认为T,即字符串加引号。
  • 变量保存与重新加载
> save(X,file = "test.RData")#保存其中一个变量X,.RData是文件格式
> load("test.RData")#重新加载X变量
> X
  X1
A  1
B NA
C NA
D  3
E NA
> save.image(file = "bioplanet.RData")#保存所有变量
> load("bioplanet.RData")#重新加载所有变量
  • 提取元素
> X <- read.table(file="huahua.txt",sep="\t",header=T)
> X
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
> X[1,1]
[1] "A"
> X[1,1]#提取第1行第1列元素
[1] "A"
> X[,1]#提取第1列元素
[1] "A" "B" "C" "D" "E"
> X[1,]#提取第1行元素
  X1 X2
1  A  1
> X[1]#提取第1列元素
  X1
1  A
2  B
3  C
4  D
5  E
> X[1:2]
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
> X[1:2]#提取第1列到第2列的元素
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
> X[c(1,2)]#提取第1列和第2列的元素
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
> X$X1#提取X1列元素
[1] "A" "B" "C" "D" "E"
> X[1:2,]#提取第1行到第2行的元素
  X1 X2
1  A  1
2  B NA
> X[c(1,3),]#提取第1和第3行元素
  X1 X2
1  A  1
3  C NA
  • 直接使用数据框中的变量
    1.直接提取
> a <-data.frame(case=paste(1:50),values=runif(50))
> plot(a$case,a$values)

创建数据框a,a中的case赋予1-50的整数,values赋予50个符合正态分布的随机数。
然后直接用a中的case和value作为x和y绘制散点图。

  1. 用attach
> attach(a)#将a放入搜索环境中
> plot(case,values)#直接调用a中元素,不需要再加a
> detach(a)#从搜索环境中释放a

当搜索环境中两个变量有相同名称的列名时,会发生冲突。

  1. 用with
with(a,{
 plot(case,values)
x<<-summary(values)   #求和并赋值给x,<<的意思是作为全局变量,也就是出了大括号仍有效。
})

问题:

save(X,file="test.RData")这句代码如果报错X not found,是为什么,应该怎么解决?
没遇到这个问题,我猜应该是大小写造成的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 230,527评论 6 544
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 99,687评论 3 429
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 178,640评论 0 383
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 63,957评论 1 318
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 72,682评论 6 413
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 56,011评论 1 329
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 44,009评论 3 449
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 43,183评论 0 290
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 49,714评论 1 336
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 41,435评论 3 359
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 43,665评论 1 374
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 39,148评论 5 365
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,838评论 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 35,251评论 0 28
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 36,588评论 1 295
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 52,379评论 3 400
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 48,627评论 2 380