我是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作为一个箱形图并在十进制中执行统计测试.
我真正坚持的主要问题是如何以正确的方式分割我的数据集.任何帮助将非常感谢!
谢谢你!
jaz*_*rro 28
另一种方式是ntile()在dplyr.
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
小智 5
也许更容易这样:
data$qunatil = cut( data$fpkm, quantile(data$fpkm, prob = seq(0, 1, length = 11), type = 5) )
| 归档时间: | 
 | 
| 查看次数: | 37976 次 | 
| 最近记录: |