同一日期唯一 ID 的平均结果

时间:2021-01-13 23:57:34

标签: r

我有一个实验室数据集,其中一些患者在同一日期有多个记录。我试图取结果的平均值,并将其作为该特定日期的最终结果。我使用了下面提到的方法,但是,它似乎不起作用。

ACCT <- c(4333,3234,4232,1313,1341,4244,3211)
TEST_DATE <- c('2016-04-01', '2016-04-01', '2016-04-01', '2016-04-01','2016-04-01','2016-04-01','2016-04-01')
RESULTS <- c(1.4,1.7,1.2,1.8,1.5,1.7)

df <- data.frame(ACCT,TEST_DATE,RESULTS)

df$TEST_DATE <- as.POSIX(df$TEST_DATE)

根据 ACCT 和 TEST_DATE 创建非重复行。这将为我提供没有重复日期的帐户:

df_nonduplicates <- df %>% group_by(ACCT,TEST_DATE) %>% filter(!n()>1)

创建一个数据框,为我提供具有重复 TEST_DATE 的 ACCTS:

df_duplicates <- df %>% group_by(ACCT,TEST_DATE) %>% filter(n()>1)

试图取在 TEST_DATE 有多个结果的 ACCT 的平均结果:

df_cleaned_duplicates <- df_duplicates %>% group_by(ACCT) %>%mutate(avg_result=mean(as.numeric(df_duplicates$RESULTS, NA.rm=TRUE))) %>% select(ACCT, TEST_DATE, avg_result) 

这给了我整个 avg_result 列的 NA 值。我不明白为什么。

加入两个数据集:

final_result <- rbind(df_nonduplicates, df_cleaned_duplicates)

0 个答案:

没有答案
相关问题