다음과 같은 데이터 프레임 (df)이 있다고 가정합니다.
Patient VisitDate Test
1 1mth A
1 2mth A
1 3mth A
1 4mth A
2 1mth B
2 2mth B
2 3mth B
2 4mth B
3 1mth A
3 2mth A
3 3mth B
3 4mth A
다음은 예제 데이터 프레임을 만드는 코드입니다.
df <- data.frame(Patient=c(1,1,1,1,2,2,2,2,3,3,3,3),
VisitDate=c("1mth","2mth","3mth","4mth","1mth","2mth","3mth","4mth","1mth","2mth","3mth","4mth"),
Test=c("A","A","A","A","B","B","B","B","A","A","B","A"))
다른 검사를받은 모든 환자와 그 방문 날짜의 목록을 만들고 싶습니다. 이 수표는 어떻게합니까?
"그룹 별 신청"기능과 같은 것이 있습니까?
따라서이 예의 결과는 3 분에 환자 3이 될 것입니다 (그는 테스트 B 를 받았고 다른 테스트에서는 다른 시점이 테스트 A 였기 때문에).
다양한 옵션 :
ave
:
df[as.logical(ave(as.character(df$Test),df$Patient,FUN=function(x) x != x[1] )),]
# Patient VisitDate Test
#11 3 3mth B
by
:
do.call(rbind, by(df, df$Patient, function(x) x[x$Test != x$Test[1],] ))
# Patient VisitDate Test
#3 3 3mth B
data.table
의 by
:
library(data.table)
df <- as.data.table(df)
df[, .SD[Test != Test[1]], by=Patient]
# Patient VisitDate Test
#1: 3 3mth B
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다