"시작"으로 시작합니다
ID <- c("A", "A", "A", "B", "B", "C")
Lab <- c("5", "10", "15", "20", "5", "10")
Date <- as.Date(c("01/01/2020",
"01/01/2020",
"01/02/2020",
"01/01/2020",
"01/02/2020",
"01/05/2020"), format="%m/%d/%Y")
Start <- data.frame(ID, Lab, Date)
Start
#> ID Lab Date
#> 1 A 5 2020-01-01
#> 2 A 10 2020-01-01
#> 3 A 15 2020-01-02
#> 4 B 20 2020-01-01
#> 5 B 5 2020-01-02
#> 6 C 10 2020-01-05
"마침"으로 이동해야합니다.
Day <- c(1, 1, 2, 1, 2, 1)
Finish <- data.frame(ID, Lab, Date, Day)
Finish
#> ID Lab Date Day
#> 1 A 5 2020-01-01 1
#> 2 A 10 2020-01-01 1
#> 3 A 15 2020-01-02 2
#> 4 B 20 2020-01-01 1
#> 5 B 5 2020-01-02 2
#> 6 C 10 2020-01-05 1
모든 ID에는 며칠 동안 하루에 여러 개의 실험실이 있습니다. 실험실이 그려진 날짜를 반영하고 날짜가 변경 될 때마다 1 씩 증가하고 환자 ID가 변경되면 날짜를 "1"로 재설정하는 새 변수 "Day"가 필요합니다.
reprex 패키지 (v0.3.0)에 의해 2020-04-16에 생성됨
cumsum
논리 벡터를 사용하여 'ID'로 그룹화 한 후 '일'을 만들 수 있습니다 .
library(dplyr)
Start %>%
group_by(ID) %>%
mutate(Day = cumsum(!duplicated(Date)))
# A tibble: 6 x 4
# Groups: ID [3]
# ID Lab Date Day
# <fct> <fct> <date> <int>
#1 A 5 2020-01-01 1
#2 A 10 2020-01-01 1
#3 A 15 2020-01-02 2
#4 B 20 2020-01-01 1
#5 B 5 2020-01-02 2
#6 C 10 2020-01-05 1
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다