在旋转之后,按R中的公共列值折叠新行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在旋转之后,按R中的公共列值折叠新行相关的知识,希望对你有一定的参考价值。
我有一个包含9个实验室测试的数据集,为几个患者(USUBJID)进行了测试,其中每个实验室(LABCAT)都有自己的行并且每天都进行(LBDY)。我想转置这个,所以每个实验室都是自己的列,每天执行的是值。
我按如下方式执行了一个支点。
library(dplyr)
LB <- lb %>%
select(USUBJID, LBCAT, LBDY) %>%
group_by(USUBJID) %>%
mutate(visitnum = sequence(n())) %>%
spread(key= LBCAT, value= LBDY)
这工作正常,但现在我想合并行,因为很多这些实验在同一天进行。因此,我希望在第-21天进行的所有实验一行,第-15行,第二天等等。有一种简单的方法来执行此任务,因为我偶尔遇到它并想要一个长期的解决方案。
我希望数据看起来像这样
Chemistry Hematology Immunology InfectiousDiseases Morphology ...
90301 -21 -21 NA -21 -21
90301 NA -15 NA NA -15
90301 -2 -2 -2 NA -2
谢谢!
答案
您的代码几乎就是这样,只需按USUBJID
和LBCAT
分组。
LB <- lb %>%
select(USUBJID, LBCAT, LBDY) %>%
group_by(USUBJID, LBCAT) %>%
mutate(visitnum = sequence(n())) %>%
spread(key= LBCAT, value= LBDY)
以上是关于在旋转之后,按R中的公共列值折叠新行的主要内容,如果未能解决你的问题,请参考以下文章