我有一个相当复杂的实验数据集,因此我创建了一个简化的示例来帮助传达问题 . 完整的实验是一个时间过程,有8个时间点,4个重复,4个类别(简化为样本中的“性别”),以及来自26,000个基因的表达数据 . 我想如果有人可以帮助更简单的数据集来解决我的问题,它应该适用于更大的数据集 .
更简单的数据集(下面)有4个时间点,3个重复,2个基因和测量表达式(数字非负值,完整数据集中有小数) . 我能够将以下代码直接复制并粘贴到R中,并且工作正常 .
sample <- structure(list(time = c(0L, 0L, 0L, 0L, 0L, 0L, 15L, 15L, 15L,
15L, 15L, 15L, 30L, 30L, 30L, 30L, 30L, 30L, 45L, 45L, 45L, 45L,
45L, 45L, 0L, 0L, 0L, 0L, 0L, 0L, 15L, 15L, 15L, 15L, 15L, 15L,
30L, 30L, 30L, 30L, 30L, 30L, 45L, 45L, 45L, 45L, 45L, 45L),
replicate = c(1L, 1L, 2L, 2L, 3L, 3L, 1L, 1L, 2L, 2L, 3L,
3L, 1L, 1L, 2L, 2L, 3L, 3L, 1L, 1L, 2L, 2L, 3L, 3L, 1L, 1L,
2L, 2L, 3L, 3L, 1L, 1L, 2L, 2L, 3L, 3L, 1L, 1L, 2L, 2L, 3L,
3L, 1L, 1L, 2L, 2L, 3L, 3L), gender = structure(c(2L, 1L,
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L,
1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L,
2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L, 1L, 2L,
1L), .Label = c("female", "male"), class = "factor"), gene = structure(c(1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L), .Label = c("gene1", "gene2"), class = "factor"),
expression = c(1000L, 2000L, 1010L, 2010L, 1020L, 2020L,
900L, 1900L, 910L, 1910L, 920L, 1920L, 700L, 1700L, 710L,
1720L, 720L, 1750L, 500L, 1020L, 520L, 1010L, 510L, 1050L,
1100L, 2100L, 1110L, 2110L, 1120L, 2120L, 1000L, 2000L, 1010L,
2010L, 1020L, 2020L, 800L, 1800L, 810L, 1820L, 820L, 1850L,
600L, 1120L, 620L, 1110L, 610L, 1150L)), .Names = c("time",
"replicate", "gender", "gene", "expression"), class = "data.frame", row.names = c(NA,
-48L))
sample$replicate <- as.factor(sample$replicate)
应该是这样的:
> head(sample)
time replicate gender gene expression
1 0 1 male gene1 1000
2 0 1 female gene1 2000
3 0 2 male gene1 1010
4 0 2 female gene1 2010
5 0 3 male gene1 1020
6 0 3 female gene1 2020
我的问题是:
我想要一个斜率列表,使用每个基因在每个时间点的重复项计算 . 我不确定我是否期望斜率是线性的或非线性的,因此选择其中任何一个都是有帮助的 . 我预计斜坡大部分趋势向下,但也有一些可能是积极的 .
我知道用什么格式来实现我的目标 . 我玩过 reshape
和 reshape2
包 . 有一次,我将数据与"time"作为列,26,000列具有表达式值,但对于 one 类别,只有 one 复制 . 最终我有4个重复和4个类别,26,000个独特的基因,所以这就是我如何落在这个特定的格式/结构上 .
在使用混合效果模型中的数据来查找时间和性别之间的相互作用(或我的大数据集中的“类别”)时,我需要斜率执行一些归一化计算,并将复制作为随机效果 .
这是我的 sessionInfo()
,如果它有帮助 . 使用 RStudio version 0.98.994
.
sessionInfo()
R version 3.1.2 (2014-10-31)
Platform: x86_64-apple-darwin10.8.0 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] graphics grDevices utils datasets stats methods base
other attached packages:
[1] lme4_1.1-7 Rcpp_0.11.3 Matrix_1.1-4 gplots_2.14.2 RColorBrewer_1.0-5
[6] ggplot2_1.0.0 reshape_0.8.5 BiocInstaller_1.16.1
loaded via a namespace (and not attached):
[1] bitops_1.0-6 caTools_1.17.1 colorspace_1.2-4 digest_0.6.4 gdata_2.13.3 grid_3.1.2
[7] gtable_0.1.2 gtools_3.4.1 KernSmooth_2.23-13 lattice_0.20-29 MASS_7.3-35 minqa_1.2.4
[13] munsell_0.4.2 nlme_3.1-118 nloptr_1.0.4 plyr_1.8.1 proto_0.3-10 reshape2_1.4
[19] scales_0.2.4 splines_3.1.2 stringr_0.6.2 tools_3.1.2
非常感谢你的帮助!如果我能澄清任何事情,请告诉我 .
1 回答
使用
dplyr
这个方法怎么样?这将返回