学习小组Day5笔记——TheCatcher

超感谢花花教的新建project的方法!其实我之前自己在学的时候就很郁闷,已经学了好几个章节但是一直在同一个project里面,感觉history一点一点地加上去隐隐约约感到不安(以前学C++的时候都是做一个题新建一个project嘛),现在终于学到让我安心的方法啦!

新建R project&working directory

建好了!

快速把昨天的内容补一下

然后
ctrl+l整个console里码过的代码就都没啦
save.image保存工作镜像咯

开始今天的学习惹

向量

向量的赋值

> x<-c(1,2,3)
> y<-(1:10)
> z<-seq(1,10,by=0.5)
> x<-rep(1:3,times=2)

右上角就能看到这几个变量以及它们的值啦

> View(z)手动让它显示变量z的具体内容了,可是点击变量名并没有起到相同的效果
View(z)查看

提取向量中的元素

按元素位置提取

按元素位置提取

根据元素值的大小

> z[z==5]
[1] 5
> z
 [1]  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5  6.0  6.5  7.0  7.5  8.0  8.5  9.0  9.5 10.0
> z[z==5]
[1] 5
> z[x<5]
 [1]  1.0  1.5  2.0  2.5  3.0  3.5  4.0  4.5  5.0  5.5  6.0  6.5  7.0  7.5  8.0  8.5  9.0  9.5 10.0
> z[z<5]
[1] 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5
> z[z %in% c(1,2,5)]
[1] 1 2 5

这里注意![]内的变量名称一定要与向量名称一致!
我一开始打z[x==5]就一直返回numeric(0)
但是神奇的是!z[x<5]居然返回的不是空向量,这是啥原理啊?
%in%这个运算符看起来很复杂,但是我总结了下你就当%%是个括号,只看两个%中间的东西的意义就行了(包括pipe中会用到的%>%都是一样的!)

数据框

读取数据框

read.csv

> X<-read.csv(doudou.txt)
Error in read.table(file = file, header = header, sep = sep, quote = quote,  : 
  object 'doudou.txt' not found
> read.csv('doudou.txt')
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA

!所以一定要记得单引号!read.csv('x.txt')

> read.csv("doudou.txt")
  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
> (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

读取文件,分隔符为Tab,有表头
用<-将读取的数据狂赋值给一个变量table
两边再加括号可以同时显示table的内容

行名和列名

查看行名与列名

> X<-read.csv('doudou.txt')
> View(X)
> colnames(X)
[1] "X1" "X2"
> rownames(X)
[1] "1" "2" "3" "4" "5"
可以看到在左上方的版面显示的表格组成与敲代码回车看到的列名行名一致

注意R语言里区分大小写!View()打成view()就不行!
x和X是两个变量!

修改行名与列名

> colnames(X)[1]<-"bioplanet"
> #set the colname of first column as "bioplanet"
> X<-read.csv(file="huahua.txt",sep="\t",row.names=1)
> View(X)

我先看一下huahua.txt在txt格式下长啥样


看看row.names=1带来的变化
第一列变成行名了!

鼠标移到上面去看看

第一列变成了column0,因为这时它已经被设置成了行名,我的理解是它已经不属于变量"有意义"的一部分了,它不再是数据而是行名

数据框的导出

> write.table(X,file="yee.txt",sep=",",quote=F)#导出X为yee.txt,分隔符为逗号,字符串不加引号

让我们来看看导出效果


嗯,跟预想的一毛一样!

变量的保存和重新加载

保存

> save.image(file="bioinfoplanet.RData")
> save(table,file="table.RData")
保存完在工作目录看到了!

重新加载

> load("table.RData")
> table
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA

提取元素

> table
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
> table[3,2]
[1] NA
> table[2,]
  X1 X2
2  B NA
> table[,2]
[1]  1 NA NA  3 NA
> table[2]
  X2
1  1
2 NA
3 NA
4  3
5 NA
> table[1,2]
[1] 1
> table[1:2]
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
> table[c(1,2)]
  X1 X2
1  A  1
2  B NA
3  C NA
4  D  3
5  E NA
> table$X1
[1] A B C D E
Levels: A B C D E#还显示变量水平这么优秀的吗

直接使用数据框中的变量

先新建一个数据框

> c<-data.frame(case=paste("S",c(1:50)),values=runif(50))
> View(c)

并看看它长啥样


所以现在可以动paste是啥意思了好开心

paste("S",c(1,50)) =c(S 1,S 2,...,S 50)


有空格哦

用这个数据框的数据作图吧

最复杂但是最不容易出错的方法

> plot(c$case,c$values)

attach(千万记得detach哦)

> attach(c)
> plot(case,values)
> detach(c)

不适用于两个以上数据框的列名有冲突时
用完及时detach,不然它会一直留在搜索环境,指不定给你带来什么困扰哦

with

> with(c,{
+ plot(case,values)
+ x<<-summary(values)
+ })
> x
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
0.05364 0.31408 0.56415 0.53437 0.78704 0.98848 

我很不喜欢这个方法诶,,在RSdutio自动补齐括号的情况下想要分行就很烦
我用tidyverse包来皮一下

>library(tidyverse)
> c%>%
+ ggplot()+geom_point(mapping=aes(x=case,y=values))
ggplot就很好看!我为ggplot打call一万年

脚本的使用和保存

按步骤保存和打开了可是全是报错orz

最后是今天的思维导图

就很简单

你可能感兴趣的:(学习小组Day5笔记——TheCatcher)