2017-11-13 12 views
0

현재 리프 영역을 분석하여 클러스터 내의 리프 위치와 비교하는 프로그램에서 작업 중입니다 (즉, 첫 번째 리프, 세 번째, 마지막 등). .) 위치, 면적, 질량 등의 관계를 분석하고 있습니다. 나는 약 5,000 잎과 1,000 클러스터의 데이터베이스를 가지고 있는데, 이것이 문제가되는 곳이다.데이터 크기에 기초한 'R'의 데이터 분할

클러스터의 숫자는 서로 다르지만 대부분 5 개의 잎이 있지만 일부는 2 개, 8 개 또는 그 사이에 있습니다. 클러스터에서 숫자를 기준으로 클러스터를 구분하여 3 개의 클러스터가 7 개의 클러스터와 동일한 클러스터를 처리하지 않도록해야합니다. 내 .csv에는 각 리프가 개별적으로 입력되어 있으므로 수동으로 입력하는 경우 다른 세트를 사용할 수 없습니다. .

저는 'R'에서 다소 새로운 것이므로 여기서 확실한 기술을 놓치고 있을지 모르지만 도움이된다면 크게 도움이 될 것입니다. 나는 또한 이것이 다소 혼란 스럽다는 것을 알고 있으므로 명확한 질문으로 답장을 보내 주시기 바랍니다.

미리 감사드립니다.

+0

코드는 어디에 있습니까? – Ibo

+0

내 현재 프로젝트가 데이터의 하위 집합이 아니므로 제공 할 수는 있지만 할 일이별로 없습니다. 데이터를 서브 세트 화하는 방법이 필요합니다. 지금까지는 그렇게하지 않았습니다. –

답변

0

질문을 올바르게 이해하면 일부 정의 된 그룹 (사례의 clusterPosition?)을 기반으로 계산하려는 것처럼 들립니다. dplyr을 사용하여이 작업을 수행하는 한 가지 방법은 group_bysummarize 또는 mutate과 함께 사용하는 것입니다. 나중에는 원래 데이터 세트의 모든 행을 유지하고 이전 행에 행을 추가하고 그룹화 된 각 고유 변수에 대한 요약 통계를 리턴합니다. 데이터를 이런 식으로 뭔가 보이는 경우, 예를 들어

는 :

df <- data.frame(leafArea = c(2.0, 3.0, 4.0, 5.0, 6.0), cluster = c(1, 2, 1, 2, 3), clusterPosition = c(1, 1, 2, 2, 1))

당신이 아래 같은 것을 할 것입니다 각각의 고유 한 clusterPosition에 대한 평균과 표준 편차를 얻으려면을,이 각각 하나 개의 행을 반환 고유 한 clusterPosition. 당신이 그것을 clusterPosition의 일부 특성에 각각의 고유 한 잎을 비교하려는 당신이 당신의 원본 데이터 셋의 모든 개별 행을 유지하려면, 즉 경우

library(dplyr) 
df %>% group_by(clusterPosition) %>% summarize(meanArea = mean(leafArea), sdArea = sd(leafArea)) 

대신 대한 요약의 돌연변이 사용할 수 있습니다.

library(dplyr) 
df %>% group_by(clusterPosition) %>% mutate(meanPositionArea = mean(leafArea), diffMean = leafArea - meanPositionArea)