2016-11-15 1 views
-4

데이터 프레임 (transp_correlations)을 "corr"(이상적으로 내림차순)으로 필사적으로 정렬하려고합니다. 전체 데이터 프레임 (rownames 포함)을 반환해야합니다. .데이터 프레임을 주문할 때의 어려움

불행하게도 나는 많은 문제에 직면 - 나는이 뭘하려

  • 마스크 투명도 < - transp_correlations [순서 (CORR)] -> 스칼라합니다 (dataframe의 첫 번째 셀)을 반환
    • transp- 0 transp_correlations [순서 (transp_correlations $ CORR)] -> 정렬 벡터를 반환하지만 rownames
  • TRANSP < 삭제 된 - transp_correlations가 [주문 ("CORR ')] -> 비를 반환 정렬 된 데이터 프레임

제 지식에 따르면 첫 번째 옵션은 올바른 구문이고 다른 두 개는 우연히 만 식별됩니다. 올바른 구문을 작성하는 방법에 대한 지침은 매우 높이 평가 될 것입니다.

구조 (목록 (CORR에서의 C = (-0.117661691889059, -0.244374051965591, -0.219277156640164, -0.162119035544463, -0.153750058161601, 0.238059055122716, -0.112988647529562, -0.22890950435724, -0.212213257871138, -0.164868801623183, -0.157327010028056, 0.276036409162576 - 0.129156901338342, -0.247314062599315, -0.234716884100804, -0.177925630373387 = C를 (0.117661691889059, abscorr -0.164633635391903, 0.227786973830269, -0.10921452701353, -0.0385193717439635) 0.244374051965591, 0.219277156640164, 0.162119035544463, 0.153750058161601, 0.238059055122716, 0.112988647529562, 0.22890950435724, 0.212213257871138, 0.164868801623183, 0.157327010028056, 0.276036409162576, 0.129156901338342, 0.247314062599315, 0.234716884100804, 0.177925630373387, 0.164633635391903, 0.227786973830269, 0.10921452701353, 0.0385193717439635)가 = C를 (62L, 108L, 96L, 85L, 80L, 105L, 61L, 100L, 94L, 89L, 82L를 둥글게 "corr", "abscorr", "rang"), row.names = c ("V1", 115L, 70L, 110L, 103L, 91L, 88L, 98L, 59L, 36L) "V2", "V3", "V4", "V5", "V6", "V7", "V8", "V9", "V10", "V11", "V12", "V13" V20, V16, V19, V20) ), 클래스 = "data.frame")

+0

환영을보십시오. 오류를 재현하는 데이터 샘플이 없으면이 질문에 도움을 줄 수는 없습니다. 재현 가능한 예제를 제공하기위한 힌트는 http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example을 읽어보십시오. 'mtcars' 데이터 세트로 설명하는 동작을 복제 할 수 없습니다. 'dput (head (transp_correlations, 20)) '을 사용하여 데이터 스 니펫을 공유 할 수 있습니까? – Benjamin

+0

감사합니다 ... 그리고 확실히 아래 스 니펫을 찾으십시오. 그리고 내가 말했듯이 나는이 도전에 대해 필사적이다. 그러나 가장 논리적 인 설명이 어쨌든 R 버전의 몇몇 다른 행동과 관련이 없습니까? R 버전 3.2.3을 사용 중입니다. –

답변

1

데이터를 사용하여 당신의 시도로 어떤 일이 일어 났는지 설명하십시오. 내 작업 공간에서 corr라는 이름의 개체가 없기 때문에

transp_correlations <- structure(list(corr = c(-0.117661691889059, -0.244374051965591, -0.219277156640164, -0.162119035544463, -0.153750058161601, 0.238059055122716, -0.112988647529562, -0.22890950435724, -0.212213257871138, -0.164868801623183, -0.157327010028056, 0.276036409162576, -0.129156901338342, -0.247314062599315, -0.234716884100804, -0.177925630373387, -0.164633635391903, 0.227786973830269, -0.10921452701353, -0.0385193717439635), abscorr = c(0.117661691889059, 0.244374051965591, 0.219277156640164, 0.162119035544463, 0.153750058161601, 0.238059055122716, 0.112988647529562, 0.22890950435724, 0.212213257871138, 0.164868801623183, 0.157327010028056, 0.276036409162576, 0.129156901338342, 0.247314062599315, 0.234716884100804, 0.177925630373387, 0.164633635391903, 0.227786973830269, 0.10921452701353, 0.0385193717439635), rang = c(62L, 108L, 96L, 85L, 80L, 105L, 61L, 100L, 94L, 89L, 82L, 115L, 70L, 110L, 103L, 91L, 88L, 98L, 59L, 36L)), .Names = c("corr", "abscorr", "rang"), row.names = c("V1", "V2", "V3", "V4", "V5", "V6", "V7", "V8", "V9", "V10", "V11", "V12", "V13", "V14", "V15", "V16", "V17", "V18", "V19", "V20"), class = "data.frame") 

다음 줄

나를 위해 실패합니다. 이 코드에서는 R이 데이터 프레임의 corr 열을 사용하도록 지시하지 않으므로 오류가 아니라면 작업 영역에 corr이라는 개체를 정의해야합니다. R은 그 외부 corr을 기반으로 transp_correlations을 주문하려고합니다. 이는 거의 당신이 원하는 것이 아닙니다.

transp_correlations[order(corr), ] 

이 다음 줄은 나에게 나는 그것이 잘못된 방향으로 정렬되는 것을 제외하고 당신이 원하는 믿는 결과를 제공합니다.

transp_correlations[order(transp_correlations$corr), ] 

이 세 번째 줄은 나에게 데이터 프레임의 corr 열을 제공합니다. 문자 벡터 c("corr")을 주문했습니다. 문자 벡터는 자신을 반환합니다. 따라서 하나의 열만 추출했습니다.

transp_correlations[order("corr") ] 

당신이 원하는 결과를 얻기 위해 스택 오버플로

transp_correlations[order(transp_correlations$corr, decreasing = FALSE), ] 
관련 문제