R:将数据集分割为四分位数/十分位数。正确的方法是什么?

标签 r plot dataframe

我对 R 非常陌生,所以希望我能得到一些关于如何实现所需的数据操作的指导。

我有一个包含三个变量的数据数组。

  gene_id       fpkm  meth_val
1 100629094     0.000 0.0063
2 100628995     0.000 0.0000
3 102655614   111.406 0.0021

我想根据 fpkm 将gene_ids 分层为四分位数或十分位数后绘制平均 meth_val。

一旦我将数据加载到数据框中...

data <- read.delim("myfile.tsv", sep='\t')

我可以使用以下方法确定 fpkm 十分位数:

quantile(data$fpkm, prob = seq(0, 1, length = 11), type = 5

产生

          0%          10%          20%          30%          40%          50%
0.000000e+00 9.783032e-01 7.566164e+00 3.667630e+01 1.379986e+02 3.076280e+02
         60%          70%          80%          90%         100%
5.470552e+02 8.875592e+02 1.486200e+03 2.974264e+03 1.958740e+05

从那里,我想根据 fpkm_val 是否适合这些十分位数之一,将数据帧基本上分为 10 组。然后我想将 ggplot 中每个十分位数的 meth_val 绘制为箱形图,并跨十分位数执行统计测试。

我真正困扰的主要问题是如何以正确的方式分割我的数据集。任何帮助将不胜感激!

非常感谢!

最佳答案

另一种方法是 dplyr 中的 ntile()

library(tidyverse)

foo <- data.frame(a = 1:100,
                  b = runif(100, 50, 200),
                  stringsAsFactors = FALSE)

foo %>%
    mutate(quantile = ntile(b, 10))

#  a         b quantile
#1 1  93.94754        2
#2 2 172.51323        8
#3 3  99.79261        3
#4 4  81.55288        2
#5 5 116.59942        5
#6 6 128.75947        6

关于R:将数据集分割为四分位数/十分位数。正确的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26273892/

相关文章:

dataframe - 如何从 Julia 的数据框中获取多个直方图

Python - 仅绘制数据集的最外层点

python - 每组增量变量

r - "Collapse"使用列名作为 ID 将多列分成两列

python - 为 pandas 数据框中的单元格赋值

r - 在预测包中使用 autoplot() 时如何控制线条大小

r - 结合两个数据框保留所有列

r - 如何抑制函数在 R 中返回 "Null"?

c++ - RInside 找不到已编译 R 的系统 Renviron

r - 按 x 轴扩展绘图区域,为直接标签腾出空间