2 개의 데이터 프레임 "start.date"및 "death.date"가 있습니다. 각각은 2 개의 열 "numid"(숫자 ID)와 "날짜"열을 포함합니다. "start.date"는 각 numid에 대한 질병 시작을 기록하는 데이터 세트입니다. "death.date"에는 "start.date"에 numid 인 사람 만 포함되며이 날짜는 death.date $ date의 날짜에 사망합니다.다른 길이의 데이터 세트간에 numid가 같은 차이를 계산합니다.
동일한 numid를 가진 사람들의 start.date와 death.date 사이의 차이 (= 생존)를 계산해야합니다.
이tempi<-as.numeric(factor(start.date$numid))
tempj<-as.numeric(factor(death.date$numid))
for(i in tempi){
for(j in tempj){
surviv[i]<-ifelse(colic.date$numid[i]==death.date$numid[j],
death.date$date.death[j]-colic.date$date.colic[i],
"alive")
}
}
내 생각은 여기 내 문제가 surviv 중 [내가]은 death.date $ numid [J]의 마지막 값을 유지하지만 난 방법을 찾을 수있다 :
이
은 내가 쓴 것입니다 . 누가이 빛을 밝힐 수 있니? 아마도 더 쉬운 방법이 있습니다 (매우 느리게 실행됩니다 - 잘못된 결과에도 불구하고)어쨌든 제가 사과했는데 내 데이터로는 아무 것도 찾을 수 없었습니다.
건배 마르코
@Infominer에게 제안 해 주셔서 감사합니다. 처음에는 %를 사용했지만이 인스턴스에서는 작동하지 않게되었지만 결국에는 코드가 제대로 작동했습니다. 원래 데이터 셋에서 POSIXct를 지정한 후에도 R이 원본 데이터 셋 사이의 날짜 열을 병합하기 위해 cbind를 사용할 때 R이 이들을 숫자로 재 변환했습니다. 이유는 확실하지 않습니다. 그래서 나는 먼저 as.character()라는 날짜를 가진 열을 cbinding 한 다음 difftime()을 사용하기 직전에 as.POSIXct()로 날짜를 변환했다. 당신의 도움을 주셔서 감사합니다! – MarcoD