如何从包含两个感兴趣的关键字的行中检索值以在R上添加新列?

问题描述 投票:0回答:2

I have a data table that looks like this,

而且我基本上想要做的是在表中创建一个新列,其中包含每个样本的“读数”中的倍数变化,例如,这>]

第0周的样本1 /第0周的样本1

第4周的样本1 /第0周的样本1

第14周的样本1 /第0周的样本1

以此类推,在示例1的所有时间点上,依此类推,然后使用它们从周0开始的相应“读数”为其余示例计算相同的事物。

到目前为止,我所尝试的是类似的东西,

r
SampleIDs<-as.character(unique(table$ID))

table$FC<-for(i in table[i,]){
for(j in SampleIDs){

if(table[i,"ID"]==j){

    table[i,3]/table[(("WEEK"==0)&("ID"==j)),3]
    }
    }
  }

}

运行时,代码返回错误,

Error in if (table[i, "SampleID"] == j) { : argument is of length zero

[我想做的是创建一个具有唯一ID的单独矢量,并在for函数中使用它来逐行查找,以确保该行包含具有相同ID的样本,然后尝试检索包含ID j AND

的样本数据的单元格来自第0周,以计算我的倍数变化值。对此方法的任何帮助将不胜感激!谢谢

我有一个看起来像这样的数据表,而我基本上想要做的是在表中创建一个新列,其中包含每个样本的“读数”中的倍数变化,例如。 。

r for-loop nested-loops data-retrieval nested-for-loop
2个回答
0
投票

您不应将for循环用于需要按组执行的操作。有一些功能可帮助您执行此类分组计算。


0
投票

[也许,我们可以按'ID'分组并通过将'readout'除以'WEEK'为0的'readout'来创建新列

© www.soinside.com 2019 - 2024. All rights reserved.