기본 결과 측정 값 (Y
)과 공변량 (X1
)에 해당하는 여러 개인 (ID
)의 날짜와 시간이 있습니다.여러 행에 걸쳐 날짜를 비교하고 조건이 일치하면 값을 바꿉니다.
내 목적은 측정이 X1
Y
변수 측정 된 날짜/시간에서 +/- 24 시간 이내에 기록 된 경우 Y
행마다 X1
측값 대체하는 것이다. 구상이 쉽게 확인 (및 R로로드), 여기 데이터가 현재 배치되는 방식이다
structure(list(ID = c(1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 3L, 3L, 3L, 3L), TIME = structure(1:15, .Label = c("01/01/2013 12:01",
"01/03/2013 08:49", "01/03/2013 20:52", "02/01/2013 05:00", "02/03/2013 05:30",
"02/03/2013 21:14", "02/05/2013 05:15", "02/12/2013 05:03", "02/15/2013 04:16",
"02/16/2013 04:12", "02/16/2013 21:02", "03/01/2010 17:58", "03/02/2010 00:10",
"03/03/2010 10:45", "03/04/2010 09:00"), class = "factor"), Y = structure(c(1L,
5L, 7L, 1L, 1L, 2L, 1L, 1L, 1L, 4L, 3L, 1L, 8L, 1L, 6L), .Label = c(".",
"22", "35", "4", "5", "6", "8", "9"), class = "factor"), X1 = structure(c(2L,
1L, 1L, 7L, 7L, 1L, 4L, 4L, 3L, 1L, 1L, 6L, 1L, 5L, 1L), .Label = c(".",
"0.1", "0.2", "0.4", "0.6", "0.9", "1.0"), class = "factor")), .Names = c("ID",
"TIME", "Y", "X1"), class = "data.frame", row.names = c(NA, -15L))
원하는 출력을 단순화하기 위해, I가 아닌 경우에만 누락 Y
값의 행을 표시하고 싶다 이러한 최종 생성물은 다음과 같을 것이다 :
ID TIME Y X1
1 1 01/03/2013 08:49 5 .
2 1 01/03/2013 20:52 8 .
3 2 02/03/2013 21:14 22 .
4 2 02/16/2013 04:12 4 0.2
5 2 02/16/2013 21:02 35 .
6 3 03/02/2010 00:10 9 0.9
7 3 03/04/2010 09:00 6 0.6
은 (1) 복수의 행에 걸쳐 반복하고 X1
및 Y
측정치와의 차이를 얻기 위해 24 시간의 절대 값을 평가하는 것이 가능하다 (2) 누락 된 값 X1
을 t 내에있는 값으로 바꿉니다. 그 +/- 24 시간 창?
이 문제를 해결하는 방법에 대한 의견은 크게 부탁드립니다.
누락 된 'X1'이 (가) 24 시간 이내에 하나 이상의 'X1'값이 있으면 어떻게됩니까? –
게시물에 [재현 가능한 코드 예제] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)를 추가하는 것이 좋습니다. 이라고 밝혔다. –
출력의 세 번째 줄에있는 0.2는 어디에서 오는가? – TheComeOnMan