在旋转之后,按R中的公共列值折叠新行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在旋转之后,按R中的公共列值折叠新行相关的知识,希望对你有一定的参考价值。

我有一个包含9个实验室测试的数据集,为几个患者(USUBJID)进行了测试,其中每个实验室(LABCAT)都有自己的行并且每天都进行(LBDY)。我想转置这个,所以每个实验室都是自己的列,每天执行的是值。

enter image description here

我按如下方式执行了一个支点。

library(dplyr)
LB <- lb %>%
   select(USUBJID, LBCAT, LBDY)  %>%
   group_by(USUBJID) %>%
   mutate(visitnum = sequence(n())) %>%
   spread(key= LBCAT, value= LBDY) 

这工作正常,但现在我想合并行,因为很多这些实验在同一天进行。因此,我希望在第-21天进行的所有实验一行,第-15行,第二天等等。有一种简单的方法来执行此任务,因为我偶尔遇到它并想要一个长期的解决方案。

enter image description here

我希望数据看起来像这样

       Chemistry   Hematology Immunology   InfectiousDiseases Morphology ...
90301    -21          -21        NA           -21               -21
90301     NA          -15        NA            NA               -15
90301    -2           -2        -2             NA               -2

谢谢!

答案

您的代码几乎就是这样,只需按USUBJIDLBCAT分组。

LB <- lb %>%
   select(USUBJID, LBCAT, LBDY)  %>%
   group_by(USUBJID, LBCAT) %>%
   mutate(visitnum = sequence(n())) %>%
   spread(key= LBCAT, value= LBDY)

以上是关于在旋转之后,按R中的公共列值折叠新行的主要内容,如果未能解决你的问题,请参考以下文章

MySQL PHP插入新行,其中rowNum列值始终按日期和时间按时间顺序排列

按 R 中的列值过滤列表中的每个数据框

折叠火花数据框中的列值

在 python3 中的 csv 文件的特定行之后添加新行

RStudio 中的代码折叠:在代码中创建层次结构

Butterknife 片段旋转给出 NullPointer