我被要求为一位同事重塑一个数据框,并花了很多时间试图弄清楚它,但我无法解决她的问题。因此,我创建了一个小示例来寻求Stackoverflow社区的帮助
示例数据帧(在下面找到代码):
试验=示例数据
final_example =预期结果的子集
目标是从行格式转换为列格式,在进行此过渡时定义要尊重的参数(计算个人),并在完成数据重塑后最终计算出kaplan meier生存曲线(我已经对kaplan meier生存进行了编码曲线)。我需要重塑数据的帮助。
在试验df中,有一个列“治疗”,分为4个级别,其中每个处理重复几次(有些重复比其他重复/少)。在这些笼子中,每个重复的治疗被分配给带有“个人”的不同“笼子”。
每天采集一次数据,在我们的示例中从“第0天”到“第13天”开始。真实数据集超过70天以上
在每天的数据记录中,确定是否需要从实验中删除某个人。如果将某人从实验中删除,则将其定义为“ S”或“ D”数据,因此为什么试验df具有“ Day 0_S”或“ Day 1_D”,因此我们将排除所有“ A”数据最终数据集。 如果已获取数据,则无论是“ S”还是“ A”,都表示该人已从实验中删除
我们仅保留数据不为0的信息。例如,第一个笼式TeA在第0天具有数据,直到第3天都没有数据。final_example df显示此信息,其中不包括第1天和第2天。
重要的是,按时间顺序将在同一笼中被移走的个体汇总在一起。如果我们将我的示例与笼式TeA一起使用:在第0天,删除了1个人,称为TeA_01。在同一笼中的第3天,移除了3个人,因此,它们将是TeA_02,TeA_03和TeA_04。 这部分对我来说很难编码。
“ S”或“ D”数据在最后一个称为“状态”的列中具有定义的类别,其中:
S = 1 D = 0
我希望这个问题很清楚,如果没有,请随时澄清。
感谢Stackoverflow社区! :)
我过去曾发布过一些有关重塑数据帧的问题,并探讨了诸如collect()和mutate()函数之类的选项,但是
trial <- read.table("https://pastebin.com/raw/BLwHDr0X", header=T, sep="\t")
colnames(trial)[1] <- "treatment"
colnames(trial)[2] <- "cage"
final_example <- read.table("https://pastebin.com/raw/ffeKNRr1", header = T, sep="\t")