首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R中找到子群中的重复项

如何在R中找到子群中的重复项
EN

Stack Overflow用户
提问于 2020-01-08 02:56:23
回答 2查看 91关注 0票数 0

我有很多这样的病人的检查数据。

代码语言:javascript
复制
   PN CEA_VAL TEST_DAYS
1   1     2.3        25
2   1     4.6        49
3   1     5.8        67
4   3     1.8        25
5   3     6.7        69
6   4     1.9        44
7   4     3.4        87
8   5     12.4       25
9   5     16.4       25

PN是病人的号码。CEA_VAL是生物测试值.TEST_DAYS是从治疗开始到一天进行生物测试的时间间隔.

如果将每个患者视为一个亚组,则在不同的亚组之间有相同的TEST_DAYS是可以的。

但我怀疑在一个子群中存在一些重复的TEST_DAYS。如何在每个子组中找到TEST_DAYS的副本,以及如何删除它们?

一天之内对同一个病人进行几次生物测试结果是不合逻辑的.因为生物测试通常在几周后再次进行。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-08 03:19:17

您可以对每个患者使用duplicated来获得重复的值,并且只选择唯一的值。

这可以在基础R中完成:

代码语言:javascript
复制
subset(df, !ave(TEST_DAYS, PN, FUN = duplicated))

#  PN CEA_VAL TEST_DAYS
#1  1     2.3        25
#2  1     4.6        49
#3  1     5.8        67
#4  3     1.8        25
#5  3     6.7        69
#6  4     1.9        44
#7  4     3.4        87
#8  5    12.4        25

dplyr

代码语言:javascript
复制
library(dplyr)
df %>% group_by(PN) %>% filter(!duplicated(TEST_DAYS))

data.table

代码语言:javascript
复制
library(data.table)
setDT(df)
df[df[,!duplicated(TEST_DAYS), PN]$V1]
票数 1
EN

Stack Overflow用户

发布于 2020-01-08 03:03:17

如果病人有重复的天数,下面的代码应该每天只返回第一行:

代码语言:javascript
复制
library(dplyr)

my_df %>%
  group_by(PN, TEST_DAYS) %>%
  slice(1) %>%
  ungroup()
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59638824

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档