首页 > 解决方案 > 在 R 中,如何从数据集列表中提取某些行?

问题描述

> str(pc)
'data.frame':   562 obs. of  9 variables:
 $ id        : int  1 2 3 4 5 10 12 17 19 22 ...
 $ gender    : chr  "M" "F" "M" "M" ...
 $ birth_year: int  1973 1974 1937 1943 1958 1958 1940 1973 1971 1950 ...
 $ type      : chr  "spontaneous SAH" "traumatic SAH" "spontaneous SAH" "traumatic SAH" ...
 $ admit_year: int  2011 2011 2016 2012 2018 2017 2010 2018 2016 2018 ...
 $ admit_date: chr  "2011-06-22" "2011-12-19" "2016-12-06" "2012-10-28" ...
 $ admitage  : int  38 37 79 69 60 59 70 45 45 68 ...
 $ death_date: chr  NA NA NA "2012-10-28" ...
 $ death_year: int  NA NA NA 2012 NA NA NA NA 2016 NA ...

你好。我有一个看起来像这样的列表。“id”列表示患者 ID。但是因为有些患者多次入院,所以有相同 ID 的行。如何删除重复项并为每个 ID 保留一行?我试过这个

c <- unique(pc$id)

提取“id”数字,但我不知道下一步该做什么。我是初学者,所以如果您能用简单的代码向我解释一下,我将不胜感激!

编辑:我想制作一个包含患者初始入院日期的列表,以及另一个包含最终入院日期的列表?我怎样才能做到这一点?此列表按 ID 顺序排列,但如果一名患者多次入院,则日期不一定按时间顺序排列。我想知道如何通过使用 !duplicated 来实现这一点。

标签: rlist

解决方案


像这样的东西应该可以工作:pc[!duplicated(pc$id),]。默认情况下,它将保留第一次出现。


推荐阅读