샘플 데이터. 코드 블록 시스템을 사용하는 방법은 아직 잘 모르겠습니다.R 서브 세트 데이터 프레임 및 컬럼을 기초로 기능 수행
df <- data.frame(c(1,1,1,2,2,2,3,3,3),c(1990,1991,1992,1990,1991,1992,1990,1991,1992),c(1,2,3,3,2,1,2,1,3))
colnames(df) <- c("id", "year", "value")
간단한 매트릭스를 생성합니다.
id year value
1 1990 1
1 1991 2
1 1992 3
2 1990 3
2 1991 2
2 1992 1
3 1990 2
3 1991 1
3 1992 3
I는 R의 부분 집합의 질문을 통해 분류하고, 그것에인가되는 ddply 함수 {} plyr 두 번째 단계를 알아낼 수있다.
논리 : 모든 ID 하위 그룹에 대해 가장 빠른 시간에 가장 높은 값 (3)을 찾습니다.
여기서 어떤 구문을 사용하는지 혼란 스럽습니다. SO 검색에서 ddply가 최선의 선택이라고 생각하지만 방법을 파악할 수는 없습니다. 이상적으로, 내 출력은 UNIQUE ID의 벡터 여야합니다 (단 하나가 선택되고 전체 행이 함께 선택됨). 이는 R에서는 작동하지 않지만 최상의 "논리"를 얻을 수 있습니다.
3 사용할 수없는 경우 ddply((ddply(df,id)), year, which.min(value))
는 예
id year value
1 1992 3
2 1990 3
3 1992 3
, 어떤 아이디어. 다음 (2, 1) 가장주의해야한다?
감사합니다! 나는 R에 아직 많은 기능을 작성하지 않았으므로 그것이 내가 잡힌 곳이다. 만약 내가 그것을 이해한다면, ddply 함수 문장으로 조작 할 수있는 데이터 프레임을 생성한다. – ashah57
정확히,'ddply'는 함수로 전달되는 data.frames로 나눕니다. 이 함수는 data.frames를'ddply'에 반환하고, 다시'ddply'를 반환합니다. – Roland
당신이 지금 네 번 썼던이 기능으로 돌아 왔습니다. 이것은 완벽했습니다, 롤랜드. – ashah57