我有很多这样的病人的检查数据。
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 25PN是病人的号码。CEA_VAL是生物测试值.TEST_DAYS是从治疗开始到一天进行生物测试的时间间隔.
如果将每个患者视为一个亚组,则在不同的亚组之间有相同的TEST_DAYS是可以的。
但我怀疑在一个子群中存在一些重复的TEST_DAYS。如何在每个子组中找到TEST_DAYS的副本,以及如何删除它们?
一天之内对同一个病人进行几次生物测试结果是不合逻辑的.因为生物测试通常在几周后再次进行。
发布于 2020-01-08 03:19:17
您可以对每个患者使用duplicated来获得重复的值,并且只选择唯一的值。
这可以在基础R中完成:
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 25dplyr:
library(dplyr)
df %>% group_by(PN) %>% filter(!duplicated(TEST_DAYS))和data.table
library(data.table)
setDT(df)
df[df[,!duplicated(TEST_DAYS), PN]$V1]发布于 2020-01-08 03:03:17
如果病人有重复的天数,下面的代码应该每天只返回第一行:
library(dplyr)
my_df %>%
group_by(PN, TEST_DAYS) %>%
slice(1) %>%
ungroup()https://stackoverflow.com/questions/59638824
复制相似问题