[英]How can I identify and extract duplicates from data frame?
我的目標是檢查患者是否在同一天使用兩種葯物。 在示例中,患者 1 在同一天使用葯物 A 和葯物 B,但我想用代碼提取它。
df <- data.frame(id = c(1,1,1,2,2,2),
date = c("2020-02-01","2020-02-01","2020-03-02","2019-10-02","2019-10-18","2019-10-26"),
drug_type = c("A","B","A","A","A","B"))
df$date <- as.factor(df$date)
df$drug_type <- as.factor(df$drug_type)
為此,我首先制作了日期和葯物類型因子變量。 接下來我使用了以下代碼:
df %>%
mutate(lev_actdate = as.factor(actdate))%>%
filter(nlevels(drug_type)>1 & nlevels(date) < nrow(date))
但是我失敗了。 我假設如果患者在同一日期使用兩種葯物,則日期列中的級別數將小於其行號。 但是,現在我不知道如何用代碼來實現。
此外,我對以下內容感到奇怪:
如果我使用nlevels(df$date)
,將返回正確的結果,但是當我使用df %>% nlevels(date)
時,將返回錯誤並顯示
“nlevels(., df$date) 錯誤:未使用的參數 (df$date)”
你能告訴我為什么會這樣嗎?我該如何解決? 感謝您的時間。
你可以使用類似的東西
library(dplyr)
df %>%
group_by(id, date) %>%
filter(n_distinct(drug_type) >= 2)
df %>% nlevels(date)
與nlevels(df, date)
相同,后者與nlevels(df$date)
不同。 您可以嘗試df %>% nlevels(.$date)
或者df %>% {nlevels(.$date)}
而不是后者。
你需要這樣的東西嗎?
library(dplyr)
df %>%
group_by(date) %>%
distinct() %>%
summarise(drug_type_sum = toString(drug_type))
date drug_type_sum
<fct> <chr>
1 2019-10-02 A
2 2019-10-18 A
3 2019-10-26 B
4 2020-02-01 A, B
5 2020-03-02 A
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.