首页 > 解决方案 > 如何根据 R 中的特定参数组合行

问题描述

我有一个如下所示的数据框:

   ID Smoker Asthma  Age Sex COPD Event_Date
1   1      0      0  65   M    0   12-2009
2   1      0      1  65   M    0   21-2009
3   1      0      1  65   M    0   23-2009
4   2      1      0  67   M    0   19-2010
5   2      1      0  67   M    0   21-2010
6   2      1      1  67   M    1   01-2011
7   2      1      1  67   M    1   02-2011
8   3      2      1  77   F    0   09-2015
9   3      2      1  77   F    1   10-2015
10  3      2      1  77   F    1   10-2015

我想知道是否有可能将我的行组合起来以实现这样的数据集:

  ID Smoker   Asthma  Age Sex  COPD  Event_Data
    1   0      1      65   M   0      12-2009
    2   1      1      66   M   1      19-2010
    3   2      1      77   F   1      09-2015

我曾尝试使用独特的功能,但这并没有给我我想要的输出并重复多行的 ID。

这是我尝试过的代码示例

Data2<-unique(Data)

我不只是想要第一行,因为我想包括每一列的状态。例如,仅获取第一行不会包括每个 ID 在后面行中出现的 COPD 状态。

标签: r

解决方案


如果你想获得每个的(第一)行,ID你可以尝试这样的事情:

d <- structure(list(ID         = c(1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L), 
                    Smoker     = c(0L, 0L, 0L, 1L, 1L, 1L, 1L, 2L, 2L, 2L), 
                    Asthma     = c(0L, 1L, 1L, 0L, 0L, 1L, 1L, 1L, 1L, 1L), 
                    Age        = c(65L, 65L, 65L, 67L, 67L, 67L, 67L, 77L, 77L, 77L), 
                    Sex        = structure(c(2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L), 
                                       .Label = c("F", "M"), class = "factor"), 
                    COPD       = c(0L, 0L, 0L, 0L, 0L, 1L, 1L, 0L, 1L, 1L), 
                    Event_Date = structure(c(5L, 7L, 9L, 6L, 8L, 1L, 2L, 3L, 4L, 4L), 
                                           .Label = c("01-2011", "02-2011", "09-2015", 
                                                      "10-2015", "12-2009", "19-2010", 
                                                      "21-2009", "21-2010", "23-2009"), 
                                           class = "factor")), 
                class = "data.frame", 
                row.names = c("1", "2", "3", "4", "5", "6", "7", "8", "9", "10"))


d[!duplicated(d$ID), ]

#   ID Smoker Asthma Age Sex COPD Event_Date
# 1  1      0      0  65   M    0    12-2009
# 4  2      1      0  67   M    0    19-2010
# 8  3      2      1  77   F    0    09-2015

推荐阅读