2017-01-05 33 views
0

나는 훈련과 검증 서브 세트로 나눌 필요가있는 공간 데이터 세트를 다루고있다. 구체적으로 말하자면, 31 개의 밴드가있는 래스터가 있습니다. 데이터 집합을 두 개의 하위 집합으로 나누는 매개 변수로이 모두를 사용해야합니다. 분할에 Kennard-Stone 알고리즘을 사용하고자하므로 R에서 사용할 수있는 두 가지 기존 함수를 살펴 보았습니다.다층 래스터로 Kennard-Stone 알고리즘을 실행하는 방법은 무엇입니까?

첫 번째 메시지는 soil.spec 패키지의 ken.sto입니다. 두 번째는 cran 패키지의 duplex입니다. 문제는 배열로 변환 만 할 수있는 다중 레이어 래스터를 사용하는 동시에 두 요소 모두 입력으로 매트릭스 또는 데이터 프레임이 필요하다는 것입니다.

내 공간 데이터를 변환하는 방법에 대한 제안 사항이 있으시면 KS 기능 중 하나에서 사용할 수 있습니까?

+1

에 오신 것을 환영합니다. 귀하의 질문은 꽤 광범위합니다. 오류, 잘못된 출력 등과 같은 특정 코딩 문제에 대해 질문하는 사이트입니다. 언어를 아는 사람들이 귀하의 게시물을 찾을 수 있도록 R을 태그로 추가해야합니다. 이 질문은 컴퓨터 과학에 더 적합 할 수 있습니다. – curt

답변

0

ras을 스택하면 as.data.frame(ras)을 사용하여 다층 래스터를 data.frame으로 변환 할 수 있습니다. 이렇게하면 n 개의 열 (n = 래스터 레이어, 사례 31) 및 m 개의 행 (m = 래스터의 셀 수)을 갖는 2 차원 data.frame이됩니다. 그러면 입력으로 data.frame이 필요한 soil.spec 기능을 적용 할 수 있어야합니다.

참고 :rasterdata.frame으로 변환하면 공간 정보가 손실됩니다. 샘플링을 적용한 후에는 결과를 래스터로 다시 내보낼 수 있습니다. 여기서 data.frame 행의 색인을 사용하여 값을 초기 raster 표로 다시 가져올 수 있습니다.

+0

안녕하세요. @maRtin, 답장을 보내 주셔서 감사합니다. 죄송합니다. 지금 답장을 드리고 싶지만 그 일을 떠나야 만하고 지금은 다시 시작했습니다. 제안이 잘 돌아 갔고, 필자는 필자가 필요한 데이터 프레임을 만들 수있었습니다. 그러나, 나는 당신이 예상했던 또 다른 질문을 가지고 있습니다. 어떻게이 정보를 래스터로 가져 가야합니까? 나는 단서가 없다! –

0

고맙습니다. 필자는 적절한 기능을 찾는데 도움을주었습니다 (늦게 답장을 드려 죄송합니다). 그러나 지금은 또 다른 문제가 있습니다. dataframes로 래스터를 변환 한 후, 다시 ken.sto를 실행 시도, 나는 또 다른 오류가 발생합니다 :

여기
Error in prcomp.default(inp, scale = T) : 
    cannot rescale a constant/zero column to unit variance 

내가 입력으로 사용한 dataframe의 요약의 일부입니다

evi_pks_10.1  evi_pks_10.2  evi_pks_10.3  evi_pks_10.4 

    evi_pks_10.5  evi_pks_10.6  
Min. :-999.0 Min. :-999.0 Min. :-999.0 Min. :-999  Min. :-999.0 Min. :-999  
1st Qu.:-999.0 1st Qu.:-999.0 1st Qu.:-999.0 1st Qu.:-999  1st Qu.:-999.0 1st Qu.:-999  
Median : 1.0 Median : 52.0 Median : 116.0 Median :5677  Median : 148.0 Median :2556  
Mean :-269.1 Mean :-189.9 Mean :-141.7 Mean :4159  Mean :-119.6 Mean :2196  
3rd Qu.: 1.0 3rd Qu.: 155.0 3rd Qu.: 212.0 3rd Qu.:6744  3rd Qu.: 245.8 3rd Qu.:4073  
Max. : 2.0 Max. : 360.0 Max. : 360.0 Max. :9649  Max. : 299.0 Max. :7215  
NA's :1555628 NA's :1555628 NA's :1555628 NA's :1555628 NA's :1555628 NA's :1555628 
    evi_pks_10.7  evi_pks_10.8  evi_pks_10.9  evi_pks_10.10  evi_pks_10.11  evi_pks_10.12 

그래서, 문제는 분명히 NAs가 있다는 것입니까?

+0

StackOverflow에 오신 것을 환영합니다! 새로운 질문이있는 경우 내 대답 아래에 새로운 주제 또는 의견을 시작해야합니다. NAs가 문제라고 생각하지 않지만 분산이 0 인 열 (모든 값은 같습니다)이라고 생각합니다. 그들을 제거하려고하면 작동합니다. 여기를보십시오 : http://stackoverflow.com/questions/15068981/removal-of-constant-columns-in-r 여기 및 http://stackoverflow.com/questions/40315227/how-to-solve-prcomp-default -cannot-rescale-a-constant-zero-column-to-unit-var Btw. 내 대답이 유용하다고 생각되면 아래에 동의하거나 표시 할 수 있습니다. – maRtin