簡體   English   中英

按沒有唯一值的 ID 和日期計算觀察結果

[英]Count observations by ID and Date without unique values

我正在處理一個數據庫,其中包括日期變量和收縮壓測量值。 它看起來像這樣:

ID 日期 止痛葯
1個 2021-11-25 128
1個 2021-11-26 125
1個 2021-11-27 128
1個 2021-11-27 128
1個 2021-11-27 128
1個 2021-11-27 128

目標是計算每個 ID 和 DATE 的注冊表。 在上面的示例中,答案必須是 3。我嘗試使用 dplyr package 中的dplyr n_distinct()但不正確,因為 128 是相同的數字,但在不同的日期測量(我需要考慮到這一點)。 這是我使用的代碼

data <-data %>%
  group_by(ID) %>%
  mutate(n_sistolic= n_distinct(SISTOLIC),
         n_days_followup= n_distinct(DATE)) # Number of days during follow up

我除了我的數據看起來像這樣:

ID 日期 止痛葯 n_sistolic
1個 2021-11-25 128 3個
1個 2021-11-26 125 3個
1個 2021-11-27 128 3個
1個 2021-11-27 128 3個
1個 2021-11-27 128 3個
1個 2021-11-27 128 3個

非常感謝您的寶貴時間。

這能解決你的問題嗎?

圖書館

library(dplyr)

數據


data <- tibble::tribble(
  ~ID,        ~DATE, ~SISTOLIC,
   1L, "2021-11-25",      128L,
   1L, "2021-11-26",      125L,
   1L, "2021-11-27",      128L
  )

解決方案


data %>%
  group_by(ID) %>%
  mutate(n_sistolic= sum(!is.na(SISTOLIC)),
         n_days_followup= n_distinct(DATE)) 

Output


#> # A tibble: 3 × 5
#> # Groups:   ID [1]
#>      ID DATE       SISTOLIC n_sistolic n_days_followup
#>   <int> <chr>         <int>      <int>           <int>
#> 1     1 2021-11-25      128          3               3
#> 2     1 2021-11-26      125          3               3
#> 3     1 2021-11-27      128          3               3

創建於 2022-12-06,使用reprex v2.0.2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM