Tidyverse|数据列的分分合合,一分多,多合一

简介: Tidyverse|数据列的分分合合,一分多,多合一

本文首发于“生信补给站”公众号  https://mp.weixin.qq.com/s/mlwmL1quS1hLlbqeTiTZ4Q


TCGA数据挖掘可做很多分析,前期数据“清洗”费时费力但很需要。

比如基因列为ID的需要转为常见的symbol,基因列为symbol|ID的就需要拆开了!

excel分列可以解决,但是表达量数据较大,且excel容易产生“数据变形”。

一 载入数据 R包


使用TCGA下载的数据,仅使用以下几行几列, 作为示例

library(tidyverse)
data <- read.csv("separate.csv",header = TRUE, check.name = FALSE)
head(data)


第一列的ID,和人为添加的ID2,名称不规则,我们只需要前面的基因名。

二 合久可分-一列拆多列


使用separate函数, 将“指定”分隔符出现的位置一列分成多列

2.1 默认,不指定分隔符

data %>%
separate(ID, into = c("Gene", "IDnum")) %>% head()

2.2 指定分隔符且保留原始列

data %>%
separate(ID2, into = c("Gene2", "IDnum2"),sep = "/",remove = FALSE) %>%
head()

2.3 特殊字符的指定方式

data %>%
separate(ID, into = c("Gene1", "IDnum1"),sep = "l",remove = FALSE) %>%
head()

按照同样的方式,想把"|"分隔的ID拆分,发现报错。?黑人问号脸


发现问题先?separate或者help(separate)查询帮助函数,发现"|"为特殊字符,可以使用"[|]"括起来或者"\\|"

data %>%
separate(ID, into = c("Gene1", "IDnum1"),sep = "[|]",remove = FALSE) %>% head()
#或者
data2 <- data %>%
separate(ID, into = c("Gene1", "IDnum1"),sep = "\\|",remove = FALSE)

2.4,按照第几个字符拆

根据第几个字符拆分,适合数据规整的,,,

可以用来将TCGA中的sampleID转为常见的16位,需要先转置


data2 %>% select(Gene1,contains("TCGA")) %>% #选择指定列  column_to_rownames(var = "Gene1") %>%  # 将Gene1列转为rownames  t() %>% as.data.frame() %>% #数据转置,样本为行名  rownames_to_column(var="Sample") %>%  #行名变为数据中的列  separate(Sample, into = c("Sample", "bar"),sep = 16) %>%  #按照规则取前16个字符  select(-bar) #去掉分割后不需要的bar列

可参考盘一盘Tidyverse| 筛行选列之select,玩转列操作

Tips:

  • 1)数据分列可以先默认试一下,如2.1所示
  • 2)使用R的帮助,一定!

三 分久必合-多列合一列


使用unite函数, 可将多列按照“指定”分隔符合并为一列

data%>%

unite(ID_new, ID:ID2, sep="_") %>%head()


相关文章
|
算法 数据可视化 Python
一种基于R语言tidyverse的算法:批量查找SNP位点连锁区内对应的QTL以及基因
一种基于R语言tidyverse的算法:批量查找SNP位点连锁区内对应的QTL以及基因
|
算法 Linux 数据处理
SGAT丨GWAS得到的结果怎么处理?一种基于tidyverse的数据整理实用小算法
SGAT丨GWAS得到的结果怎么处理?一种基于tidyverse的数据整理实用小算法
|
数据可视化 数据挖掘 数据处理
盘一盘Tidyverse| 筛行选列之select,玩转列操作
盘一盘Tidyverse| 筛行选列之select,玩转列操作
145 0
|
人工智能 BI
UPC-排课表+玉米田(容斥原理+组合数学公式)
UPC-排课表+玉米田(容斥原理+组合数学公式)
108 0
UPC-排课表+玉米田(容斥原理+组合数学公式)
|
编解码
中秋节祝福程序源代码分享:土地分类数据阈值筛选和重投影分类
中秋节祝福程序源代码分享:土地分类数据阈值筛选和重投影分类
152 0
中秋节祝福程序源代码分享:土地分类数据阈值筛选和重投影分类
好客租房135-获取并处理城市列表数据(热门处理数据)
好客租房135-获取并处理城市列表数据(热门处理数据)
140 0
好客租房135-获取并处理城市列表数据(热门处理数据)
|
机器学习/深度学习
UPC组队训练-补题记录(上)
Game on a Tree 时间限制: 1 Sec 内存限制: 1024 MB 题目描述 Alice and Bob play a game on a tree. Initially, all nodes are white. Alice is the first to move. She chooses any node and put a chip on it. The node becomes black. After that players take turns.
141 0
UPC组队训练-补题记录(上)
|
JSON 数据处理 数据格式
用 Python 帮财务小妹合并 Excel,小妹二话不说直接。。。
用 Python 帮财务小妹合并 Excel,小妹二话不说直接。。。
用 Python 帮财务小妹合并 Excel,小妹二话不说直接。。。
|
网络架构
UPC组队训练-补题记录(下)
Eggfruit Cake 时间限制: 1 Sec 内存限制: 128 MB 题目描述 Today is Jaime’s birthday and, to celebrate, his friends ordered a cake decorated with eggfruits and persimmons. When the cake arrived, to their surprise, they noticed that the bakery didn’t use equal amounts of eggfruits and persimmons,
113 0