首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过基线时间点对科学数据进行双归一化,然后在R中进行控制

如何通过基线时间点对科学数据进行双归一化,然后在R中进行控制
EN

Stack Overflow用户
提问于 2017-07-12 22:12:06
回答 1查看 320关注 0票数 1

我有一个带有一系列参数(振幅、速率、面积、etc..there总共23个)的data.table,它们属于特定的井(如果你愿意,总共有48个),按处理分组(通常总共有10个),所有这些都在不同的时间点(可以有很多)。我想先取每口井,并将所有参数除以基线(“零”时间之前的所有时间点)的中值参数,然后再取归一化数据并再次归一化,但这次是由对照组针对每个时间点进行归一化。我还想预先查看基线和控制数据,并标记和删除异常值,如有必要,先验归一化(尽管目前这并不是非常重要;一旦我意识到如何完成归一化,我可能就能弄清楚)

作为示例,我将创建一个类似于我在原始仪器数据分析代码中生成的data.table:

代码语言:javascript
运行
复制
dt = data.table(
  wellID = as.factor(c ("A4", "B4", "C5", "D5", "A4", "B4", "C5", "D5","A4", 
  "B4", "C5", "D5")),
  treatment = as.factor (c ("Control", "Control", "Drug", "Drug", "Control", 
  "Control", "Drug", "Drug", "Control", "Control", "Drug", "Drug")),
  time_h = c (-0.2, -0.2, -0.2, -0.2, -0.1, -0.1, -0.1, -0.1, 4, 4, 4, 4),
  area = runif (12, min = 0.5, max = 0.9),
  amp = runif (12, min = 0.1, max = 0.2),
  rate = runif (12, min = 33, max = 38)
)

我试过这样的东西:

代码语言:javascript
运行
复制
baseline = subset (dt, subset = time_h < 0 )

要隔离基准时间点,然后执行以下操作:

代码语言:javascript
运行
复制
base_medians = by (baseline [ , (4: ncol (baseline)) ], baseline$ wellID, 
           function (x) {
             apply (x, 2, median)
           })

得到每口井的基线中值,但我真的不知道如何对dt中的数据进行归一化,以便井和参数匹配,然后进行第二次归一化?

我不认为这是一个好的策略,我应该以某种方式解构和重建我的数据集吗?

如有任何帮助,我们不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-12 22:35:16

如果这不是你想要的,这可能需要对子设置进行一些调整。这会将参数列除以time_h < 0treatment == "Control"时的中值

代码语言:javascript
运行
复制
set.seed(21)  #good practice for questions so results are reproducible

parm <- c("area", "amp", "rate")  #parameters to include
dt[, (parm) := lapply(.SD, function(x) x / median(x[time_h < 0])), .SDcols = parm]
dt[, (parm) := lapply(.SD, function(x) x / median(x[treatment == "Control"])), .SDcols = parm]

    wellID treatment time_h      area       amp      rate
 1:     A4   Control   -0.2 0.9541129 0.7538275 0.9403151
 2:     B4   Control   -0.2 0.7040382 1.1530667 1.0081769
 3:     C5      Drug   -0.2 0.9134096 0.8369863 0.9780808
 4:     D5      Drug   -0.2 0.6721809 0.7392173 1.0067250
 5:     A4   Control   -0.1 1.0354136 1.0865999 0.9978287
 6:     B4   Control   -0.1 1.0162338 0.9134001 0.9918002
 7:     C5      Drug   -0.1 0.6334486 1.0678871 1.0280474
 8:     D5      Drug   -0.1 0.6664317 1.1639014 0.9696164
 9:     A4   Control    4.0 1.0477798 0.7204991 1.0021713
10:     B4   Control    4.0 0.9837662 1.1454020 1.0149003
11:     C5      Drug    4.0 0.8985494 1.2648977 1.0190920
12:     D5      Drug    4.0 1.0239782 1.3705952 0.9268626
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45060120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档