生信零基础 Day6 by Sure栗子

继续R学习-R包的简单应用

以下资源均来自“生信星球公众号”

R包及其小抄

  • R包是别人写好的封装好了的命令包,有各种各样的用途。
  • 用途的说明书叫做cheatsheet,也就是小抄。跟着小抄加例子熟悉每一个R包
  • 小抄的获取方式包括:搜索引擎+包名;上Rstudio自行下载

https://rstudio.com/resources/cheatsheets/

今日学习数据框整理包-tidyr

  • 它能够做到如下功能,是数据处理的基础
    (1)数据框的变形
    (2)处理数据框中的空值
    (3)根据一个表格衍生出其他表格
    (4)实现行或列的分割和合并

  • 安装
    利用以下命令查看是否已经安装和安装这个包

> library(tidyr)
> install.packages("tidyr")
  • 挂代理(补充内容)
    我的网速这次还行,但是保不准。这里贴上来经验,以防万一
    挂代理步骤.png

    挂代理步骤2.png
正在安装tidyr包.png
  • 载入tidyr包的时候发现他要求最新的R程序,所以升级R程序

    程序包和R版本不符合.png

  • 更新R程序,用以下代码可以在Rstudio中更新,很方便
    期间会有各种选择,包括用Rgui升级啊,是否迁移旧R里的包啊,是否留存旧R数据啊,自行根据需要选择就行

install.packages("installr")
library(installr)
updateR()
更行R.png

正在更新R程序.png

更新成功.png
  • 载入tydir包就没有问题了

    tidyr没有再报错了.png

  • 新建数据框的基础操作
    给数据框来个小a的名字

a<-data.frame(GeneId = rep("gene5",times=3),SampleName =paste("Sample",1:3,sep=""),Expression=c(14,19,18))

其中

  1. rep,重复,括号中填要重复的字符和重复次数。
  2. paste,连接两个字符串,括号要填两个代连接字符并指定分隔符
  3. sep,没有分隔符就填sep=“”
  4. 1:3表示从1到三。如需一列中需要填入三个无规律的数字,可以用向量c(1,3,4)
  5. 同样如果填的是字符串也需要加双引号,例如c("doudou","huahua","xiaoyu")
    建出来是这样的
    建出来的数据框.png
  • 使用tidyr
    1.聚合与拆分数据框
    gather和separate命令
gather(table4a, `1999`, `2000`,key = "year", value = "cases") 
spread(table2, type, count)
小抄上的gather.png

自己操作的情况,需要注意生成的数据框是什么样子就原封不动的输入什么样子,这里的1999变成了“X1999”要注意

gather应用.png
  1. 处理丢失数据
drop_na(x, x2) 
fill(x, x2) 
replace_na(x, list(x2 = 2))
丢失数据小抄.png

自己操作的情况


删除、填充、替换数据.png

********生信小花吐血推荐的命令:***********
X<-read.csv('doudou.txt')
这个命令支持R及Excel,默认参数好,转换txt不会乱码,强烈推荐。我现在就是有点不明觉厉

“可能别人不会这么教,但我在这里之所以选择了csv,是因为这个神奇的支持R和Excel,默认参数好的很(默认分隔符是“,”,导出时也不会默认加引号。如果你用read.table试试就知道默认参数多笨了),并且转换txt也不会变乱码!(我自己发现的,想夸我千万别忍着)”
在这里补充下csv的导入和导出方式。(默认参数好,学R没烦恼)——生信小花

导入:X<-read.csv('doudou.csv')
导出:write.csv(X,'doudou.csv')
  1. 拓展数据
    complete(X,nesting(X1),fill = list(X2="happy"))
    拓展数据小抄.png

    这里,nesting后面括号里就是不变的列,可以多写几个;fill=list后面就是要填充的那一列
    我的应用情况:
    补全数据框.png

4.分割单元格

separate(table3, rate, into = c("cases", "pop"))
separate_rows(table3, rate)
分割单元格小抄.png

自己的操作情况:


分割.png

5.合并单元格

unite(table5, century, year, col = "year", sep = "")
合并单元格小抄.png

我自己的情况:


合并单元格.png

你可能感兴趣的:(生信零基础 Day6 by Sure栗子)