이 질문은이 게시물에 관련이 있습니다 give each id the same column value R하지만 그 해결책은 나를 위해 작동하지 않습니다.각 개인에 대한 첫 번째 날짜를 따기 R
저는 개인이 마약 C10. *을 얻은 최초의 날짜 인 datatable을 가지고 있습니다. 2010-04-01와 2010-09-30 사이의 기간 :
names drugs dates index
1: mary C10AA07 2009-10-01 NA
2: mary C09AA03 2010-06-01 NA
3: mary C10AA07 2010-07-01 2010-07-01
4: mary A02BC01 2010-07-01 NA
5: mary C10AA07 2010-07-24 2010-07-01
6: tom C10AA05 2009-12-01 NA
7: tom C10AA05 2010-04-06 2010-04-06
8: tom C07AB03 2010-05-12 NA
9: tom C10AA05 2010-08-01 2010-04-06
나는 열 '인덱스'의 모든 행에 대한 마리아에게 그녀의 인덱스 날짜를 제공하기 위해 노력하고 있습니다. 그리고 탐에 대해서도 마찬가지입니다. 그래서 출력은 다음과 같습니다.
names drugs dates index
1: mary C10AA07 2009-10-01 2010-07-01
2: mary C09AA03 2010-06-01 2010-07-01
3: mary C10AA07 2010-07-01 2010-07-01
4: mary A02BC01 2010-07-01 2010-07-01
5: mary C10AA07 2010-07-24 2010-07-01
6: tom C10AA05 2009-12-01 2010-04-06
7: tom C10AA05 2010-04-06 2010-04-06
8: tom C07AB03 2010-05-12 2010-04-06
9: tom C10AA05 2010-08-01 2010-04-06
위의 링크의 문제와 정확히 같습니다. 이 내가 시도 코드의 라인 있지만, 각 코드 나 그냥 모든 NA가
시도 내 DT2 1 변경 나던 다른 인덱스 값이나 팩을 제공합니다
dt2[, index := index[grepl('^C10.*?', as.character(dt2$drugs))& dt2$dates>="2010-04-01" & dt2$dates<"2010-10-01"][1], by = names]
dt2
시도 2 :
dt2[, index := index[grepl('^C10.*?', as.character(dt2$drugs))[1], by = names])
dt2
을
무슨 일이 일어나고 코드가 작동하지 않는지 이해할 수 없습니다. 누군가가 이것에 어떤 빛이라도 흘릴 수 있다면 그것은 위대 할 것입니다. 고맙습니다.
시도 3 : 인덱스가 아직 작성되지 않은 경우
는 설명 무엇으로dt2[, index := index[drugs == 'C10AA05' & drugs=='C10AA07'][1], by = names]
dt2
는'DT2 시도 [sapply을, (.SD, 클래스)] ', 당신은 무엇을 어떻게해야합니까? –
날짜와 색인 모두 날짜로 설정됩니다. 이름 약품 날짜 색인 "요인" "요인" "날짜" "날짜" – user2363642