同一数据集中定义行之间的T检验

沙溪肝

这就是我的数据的样子:

> dput(data)
structure(list(Name = c("Mark", "Tere", "Marcus", "Heidi", "Georg", 
"Tieme", "Joan", "Tytus", "Mark", "Tere", "Marcus", "Heidi", 
"Georg", "Tieme", "Joan", "Tytus", "Mark", "Tere", "Marcus", 
"Heidi", "Georg", "Tieme", "Joan", "Tytus", "Mark", "Tere", "Marcus", 
"Heidi", "Georg", "Tieme", "Joan", "Tytus", "Mark", "Tere", "Marcus", 
"Heidi", "Georg", "Tieme", "Joan", "Tytus", "Mark", "Tere", "Marcus", 
"Heidi", "Georg", "Tieme", "Joan", "Tytus"), position = 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, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("n", 
"w"), class = "factor"), time = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 
1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 
0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2), type = c(5, 
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 
3, 3, 3, 3, 3), value = structure(c(0.314543267094949, 3.19693140536703, 
0.930679293700748, 0.344465436879545, 1.12925174828143, 0.295226529240608, 
0.534869402647018, 0.699742971466516, 0.899450918860775, 1.69467910557034, 
0.105376912280917, 2.49469271475885, 0.0343013256788254, 0.469440043556817, 
0.917351596015406, 1.46852763733807, 0.967872510622156, 0.354032471310347, 
1.52519534333589, 1.04999953913746, 1.90298544048312, 0.265492846723646, 
1.19947244036467, 2.54636084834549, 0.401142360642552, 0.190538682818794, 
1.55882554492893, 1.27338900133492, 0.298795571085066, 1.73941845252159, 
0.133721855003387, 0.115250693634152, 1.12742130434271, 1.50438847943189, 
0.0286978152580559, 0.740798383999788, 0.838944700504553, 0.726393882538543, 
1.79097043714466, 0.214124974329025, 1.46675111903789, 0.0172332774632657, 
2.89433199895506, 3.07798819227104, 0.826817313167167, 0.72394085004025, 
0.083957624156028, 1.07571752737732), .Dim = c(48L, 1L))), .Names = c("Name", 
"position", "time", "type", "value"), row.names = c(NA, 48L), class = "data.frame")

我想对value特定行执行t检验如何找到要执行t检验的行:

1. Name必须相同。

2. Type必须相同。

3. Time =0总是那么t检验之间应计算出的参考time=1time= 0time=2time= 0,等。这是一个示例数据,因此我无法告诉您time实际数据中有多少,但0始终是参考。

4.输出(t检验的结果)可以存储在指定的附加列和行中time

5.数的NamesTimes我不知道。数据包含数千行。

6.我相信循环是唯一的解决方案,无论如何,这是我想要的代码。当然,没有循环的其他解决方案也非常受欢迎。

这是一些编程,所以我将开始赏金奖励那些愿意为此付出努力的人。

阿克伦

我们可以尝试 data.table

library(data.table)
setDT(data, keep.rownames= TRUE)
dt1 <- data[time==0]
dt2 <- data[time!=0]
res <- dt2[dt1, on = c("Name", "type")][, .(r1= rn, r2 = i.rn, time0 = i.time, 
       Othertime = time, pval = t.test(value, i.value)$p.value), .(Name, type)]
res1 <-  melt(res, measure = patterns("^r\\d+", "time"),
      value.name= c("rn", "time"))[, variable := NULL][]
res2 <- unique(res1, by = c("Name", "type", "rn"))
res3 <-  data[res2, on = "rn"][order(as.numeric(rn))][,
                    c('i.Name', 'i.type', 'i.time') := NULL][]
head(res3,3)
#  rn   Name position time type     value       pval
#1:  1   Mark        n    0    5 0.3145433 0.03514213
#2:  2   Tere        n    0    5 3.1969314 0.19052234
#3:  3 Marcus        n    0    5 0.9306793 0.89741695

更新

使用OP的真实数据

file <- "C:/Users/akrun/Misc/Data_to_analyze.csv"
data1 <- fread(file)
dt1 <- data1[tp==0]
dt2 <- data1[tp!=0]

res <- dt2[dt1, on = c("protein", "fract"), allow.cartesian = TRUE
  ][, if(.N >1) {
      .(r1= V1, r2 = i.V1, time0 = i.tp,Othertime = tp, 
         pval = t.test(abundance, i.abundance)$p.value)
    } # else .(r1=V1, r2 = i.V1, time0 = i.tp, Othertime = tp, pval = NA_real_)
         , by = .(protein, fract)]


res1 <-  melt(res, measure = patterns("^r\\d+", "time"),
          value.name= c("V1", "time"))[, variable := NULL][]
res2 <- unique(res1, by = c("protein", "fract", "V1"))

res3 <-  data1[res2, on = "V1"][order(as.numeric(V1))][,
                   c('i.protein', 'i.fract') := NULL][]
 head(res3)
 #   V1   protein line tp fract   abundance           pval time
 #1:  1 PCP000002    n  0     1  46697305.3 0.515626208527    1
 #2:  2 PCP000007    n  0     1   8384565.8 0.000643157099    1
 #3:  3 PCP000008    n  0     1    570026.3 0.000006871077    1
 #4:  4 PCP000012    n  0     1   1018257.3 0.085610886030    1
 #5:  5 PCP000017    n  0     1 157877521.4 0.016528856828    1
 #6:  6 PCP000018    n  0     1 426215586.5 0.046130079694    1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据同一数据集中2个表之间的关系创建表或数据集

来自分类Dev

在 R 中匹配同一数据集中的行

来自分类Dev

R - for 循环比较同一数据集中的列

来自分类Dev

使用 R 合并同一数据集中的列

来自分类Dev

对来自同一数据帧的多列执行卡方检验

来自分类Dev

如何在R中的同一数据集中串联2列

来自分类Dev

SAS如何在同一数据集中获取汇总计数

来自分类Dev

如何在同一数据集中查找不同类别的总数?

来自分类Dev

Xarray:使同一数据集中的两个DataArray使用相同的坐标系

来自分类Dev

SAS如何在同一数据集中获取汇总计数

来自分类Dev

在TDB Jena中的同一数据集中查询多个模型

来自分类Dev

根据同一数据集中另一列中的值过滤数据绑定组合框

来自分类Dev

根据同一数据集中另一列中的值过滤数据绑定组合框

来自分类Dev

R 通过 ID 比较同一数据集中的行,以找出一个是否在一个之前

来自分类Dev

明智地查找行列的运行总和并将其显示在同一数据集中的另一行中

来自分类Dev

在嵌套dplyr数据集中运行配对t检验的问题

来自分类Dev

计算同一数据中两个长点/经点之间的距离

来自分类Dev

如何使用同一数据库在不同应用程序之间执行Django查找?

来自分类Dev

用户定义的函数在两个数据集之间进行t检验

来自分类Dev

同一数据集的日期范围

来自分类Dev

同一数据集的日期范围

来自分类Dev

使用协变量在两个数据帧之间进行一系列 t 检验

来自分类Dev

如何将一个观测值的变量附加到R中同一数据集中的另一个观测值

来自分类Dev

在R中同一数据框中具有部分匹配名称的列之间进行简单算术

来自分类Dev

从数据帧子集提取的向量之间的T检验

来自分类Dev

熊猫从同一数据框中减去2行

来自分类Dev

从同一数据框中添加行

来自分类Dev

同一数据库内的排序规则冲突

来自分类Dev

在同一数据帧中自动生成ggplot

Related 相关文章

  1. 1

    根据同一数据集中2个表之间的关系创建表或数据集

  2. 2

    在 R 中匹配同一数据集中的行

  3. 3

    R - for 循环比较同一数据集中的列

  4. 4

    使用 R 合并同一数据集中的列

  5. 5

    对来自同一数据帧的多列执行卡方检验

  6. 6

    如何在R中的同一数据集中串联2列

  7. 7

    SAS如何在同一数据集中获取汇总计数

  8. 8

    如何在同一数据集中查找不同类别的总数?

  9. 9

    Xarray:使同一数据集中的两个DataArray使用相同的坐标系

  10. 10

    SAS如何在同一数据集中获取汇总计数

  11. 11

    在TDB Jena中的同一数据集中查询多个模型

  12. 12

    根据同一数据集中另一列中的值过滤数据绑定组合框

  13. 13

    根据同一数据集中另一列中的值过滤数据绑定组合框

  14. 14

    R 通过 ID 比较同一数据集中的行,以找出一个是否在一个之前

  15. 15

    明智地查找行列的运行总和并将其显示在同一数据集中的另一行中

  16. 16

    在嵌套dplyr数据集中运行配对t检验的问题

  17. 17

    计算同一数据中两个长点/经点之间的距离

  18. 18

    如何使用同一数据库在不同应用程序之间执行Django查找?

  19. 19

    用户定义的函数在两个数据集之间进行t检验

  20. 20

    同一数据集的日期范围

  21. 21

    同一数据集的日期范围

  22. 22

    使用协变量在两个数据帧之间进行一系列 t 检验

  23. 23

    如何将一个观测值的变量附加到R中同一数据集中的另一个观测值

  24. 24

    在R中同一数据框中具有部分匹配名称的列之间进行简单算术

  25. 25

    从数据帧子集提取的向量之间的T检验

  26. 26

    熊猫从同一数据框中减去2行

  27. 27

    从同一数据框中添加行

  28. 28

    同一数据库内的排序规则冲突

  29. 29

    在同一数据帧中自动生成ggplot

热门标签

归档