长宽数据格式比较_归纳分析

之前写过关于长宽数据转换的文章,而今再看tidyr包,几乎又迷晕进去,所以再次梳理。翻来覆去的实践,其目的在于熟练数据之间的自由转换,以便在处理更大数据时不至于迷失。

  • image.png

宽数据:

  1. 宽数据是指数据集对所有的变量进行了明确的细分,各变量的值不存在重复循环的情况也无法归类。数据总体的表现为 变量多而观察值少。
  2. 每一列为一个变量,每一行为变量所对应的值。

长数据:

  1. 长数据一般是指数据集中的变量没有做明确的细分,即变量中至少有一个变量中的元素存在值严重重复循环的情况(可以归为几类),表格整体的形状为长方形,即 变量少而观察值多。
  2. 一列包含了所有的变量,而另一列则是与之相关的值。

1. 长宽数据转换

##########################################################################
#2020-06-24
# 2020-06-25  长款数据格式作图比较
rm(list = ls())

id <- 1:8
gene <- c(rep("ago", 4), rep("dcr", 4))
value <- c(2.0, 3.0, 2.5, 3.0, 5.0, 4.0, 6.0, 5.5)

dd <- data.frame(id, gene, value)
dd # 长数据
  id gene value
1  1  ago   2.0
2  2  ago   3.0
3  3  ago   2.5
4  4  ago   3.0
5  5  dcr   5.0
6  6  dcr   4.0
7  7  dcr   6.0
8  8  dcr   5.5

dd_2 <- dd %>%
  spread(key = "gene", value = "value")
dd_2 # 宽数据
  id ago dcr
1  1 2.0  NA
2  2 3.0  NA
3  3 2.5  NA
4  4 3.0  NA
5  5  NA 5.0
6  6  NA 4.0
7  7  NA 6.0
8  8  NA 5.5

dd_3 <- dd_2 %>%
  gather("ago", "dcr", key = "gene", value = "value")
dd_3 
   id gene value
1   1  ago   2.0
2   2  ago   3.0
3   3  ago   2.5
4   4  ago   3.0
5   5  ago    NA
6   6  ago    NA
7   7  ago    NA
8   8  ago    NA
9   1  dcr    NA
10  2  dcr    NA
11  3  dcr    NA
12  4  dcr    NA
13  5  dcr   5.0
14  6  dcr   4.0
15  7  dcr   6.0
16  8  dcr   5.5

2. 长宽数据绘图比较

library(ggplot2)
library(ggsignif)
# dd长数据格式,可以直接作图
compaired <- list(c("ago", "dcr"))
ggplot(dd, aes(x = gene, y = value, fill = gene)) +
  geom_boxplot() +
  geom_signif(comparisons = compaired,
            map_signif_level = T)

# dd_2宽数据格式,是不能绘制图形的

# dd_3长数据格式也是可以的
compaired <- list(c("ago", "dcr"))
ggplot(dd_3, aes(x = gene, y = value, fill = gene)) +
  geom_boxplot() +
  geom_signif(comparisons = compaired,
              map_signif_level = T)
Rplot.png

3. 输入录入格式及转换方法

用R绘图,和以往的GraphPad绘图时候,数据的录入方式有些不一样,所以在一开始时候这个思维很难转换,甚至没有摸清楚数据的录入和绘图的整体流程。下面图标列出了常见的格式录入方式。
A: GraphPad类
以GraphPad作图软件录入为例,若按照此类录入,本质上是宽数据格式,
需要将其转换为长数据格式,tidyrreshape2两个包可用,如下

id <- 1:4
ago <- c(2.0, 3.0, 2.5, 3.0)
dcr <- c( 5.0, 4.0, 6.0, 5.5)
mm <- data.frame(id, ago, dcr)
mm # 宽数据

library(tidyverse)
mm2 <- mm%>%
  gather("ago","dcr",key = "gene", value = "value")
mm2

library(reshape2)
mm3 <- mm%>% 
  melt(id.vars = "id", measure.vars = c("ago","dcr"), 
      variable.name = "gene",value.name = "value") 
mm3
 id gene value
1  1  ago   2.0
2  2  ago   3.0
3  3  ago   2.5
4  4  ago   3.0
5  1  dcr   5.0
6  2  dcr   4.0
7  3  dcr   6.0
8  4  dcr   5.5

B: widetype
此处的实例,在我的之前文章中多处用到。[1][2]

id <- 1:2
gene <- c("ago","dcr")
x1 <- c(2, 5)
x2 <- c(3, 4)
x3 <- c(2.5, 6)
x4 <- c(3, 5.5)
nn <- data.frame(id, gene, x1, x2, x3, x4)
nn

nn2 <- nn %>%
  gather(key = rep,
       value = value, x1:x4, factor_key = TRUE)
nn2

nn3 <- nn %>%
  melt(id.vars = c("id","gene"), measure.vars= c("x1","x2","x3","x4"),
       variable.name = "rep", value.name = "value")
nn3
  id gene rep value
1  1  ago  x1   2.0
2  2  dcr  x1   5.0
3  1  ago  x2   3.0
4  2  dcr  x2   4.0
5  1  ago  x3   2.5
6  2  dcr  x3   6.0
7  1  ago  x4   3.0
8  2  dcr  x4   5.5

C: longtype
长数据格式,没有宽数据格式可读性强,但是机器学习需要的就是长数据格式,以SPSS等为代表。

image.png

  1. R绘图应用实例:数据录入、转换及绘图

  2. 数据录入与格式转换(reshape2、tidyr包)

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