我有一个浓度-时间数据集,看起来像这样:
ID TIME TLD DV ANALYTE
1 0.00 0.00 NA 1
1 0.16 0.16 5 1
1 2 2 4 1
1 6 6 2.5 1
1 12 12 1 1
实际上,当然有更多的ID和更多的列。(DV)记录,例如TIME 4和TIME 10。我想写一个代码,当TIME列没有TIME 4和10的DV记录时,为每个ID添加一行。TLD记录的值与TIME相同,直到168。之后,它重置为0。DV应该为NA为每一个添加的行。所以我想实现这样的东西:
ID TIME TLD DV ANALYTE
1 0.00 0.00 NA 1
1 0.16 0.16 5 1
1 2 2 4 1
1 4 4 NA 1
1 6 6 2.5 1
1 10 10 NA 1
1 12 12 1 1
我试着做一个for循环,但是我对它不是很熟悉,现在对我来说似乎有点复杂。我希望有人能帮助我。
1条答案
按热度按时间cuxqih211#
我认为最简单的解决方案是首先创建一个单独的 Dataframe (例如time_data)的TIME值(和其他类似的变量,如TLD)。然后您可以将浓度数据
left_join()
到time_data,它将达到您想要的效果。例如:为了将来的参考,如果你展示了用来创建你的示例数据的代码,这样我们就不必自己创建它了,这会让它变得更容易。一些关于你从哪里得到随机TIME间隔的解释将有助于抽象解决方案。