2012-03-06 4 views
0

열 이름이있는 행렬 스택과 관련된 많은 스레드가 있지만이 문제에 도움이되는 정보는 없습니다. 나는이열 이름이 R으로 표시되는 행렬 스터핑

Lcover 
County  8   9 
    53009 868.935 1171.0050 
    53055  NA 414.9733 
    53057  NA 276.5450 
    53073 706.700  NA 

같은 매트릭스를 가지고 있고이 같은 dataframe를 만들기 위해 노력하고

County Lcover Value 
53009 8  868.935 
53009 9 1171.0050 
53055 9  414.9733 
53057 9  276.5450 
53073 8  706.700 

누군가가 나에게 제안, 어떻게 이런 짓을 할 수 있습니까?

미리 감사드립니다. Andrie가 언급 한 바와 같이

Deven

+0

'reshape2' 패키지에서'melt()'함수를 살펴보십시오. – Andrie

+1

R은 "테이블"이 인쇄되는 것과 비슷합니다. as.data.frame()으로 무엇을 얻는가? 테이블 메소드가 있기 때문에? –

답변

0

melt() 기능이 하찮게 쉽게 :

R은 make.names() 기능을 유효 열 이름을 시도하기 때문에 "X"는 당신의 열의 앞에 표시
x <- read.table(text = "County  8   9 
    53009 868.935 1171.0050 
    53055  NA 414.9733 
    53057  NA 276.5450 
    53073 706.700  NA ", header = TRUE) 

require(reshape2) 
melt(x, id.vars = "County", na.rm=TRUE) 

    County variable  value 
1 53009  X8 868.9350 
4 53073  X8 706.7000 
5 53009  X9 1171.0050 
6 53055  X9 414.9733 
7 53057  X9 276.5450 

. 테이블을 읽고 쓸 때 check.names = FALSE으로 해당 기능을 비활성화 할 수 있습니다. 또는 결과 열의 X를 gsub("X","", variable)으로 놓으십시오. 용해 된 data.frame에서 NA 값을 유지하려면 melt() 함수에서 na.rm = FALSE을 변경하십시오.

+0

Andrie : 고마워요. 그러나 reshape2 라이브러리를 설치 한 후에도 melt() 함수를 찾을 수 없습니다. 또한 여기에 제공된 입력은 큰 파일의 일부입니다. read.delim() 또는 read.table()을 사용하여 파일을 읽을 수 있습니까? – user1252544

+0

@ user1252544 -'library (reshape2)'명령으로 reshape2 패키지를로드 했습니까? 설치 후에도 세션에로드해야합니다. 'read.table()'또는'read.delim()'에 관해서는'setwd()'로 파일이 저장된 디렉토리로 이동하십시오. 'getwd()'로 현재 디렉토리를 확인할 수 있습니다. 적절한 디렉토리에 들어가면 (Windows 탐색기 탭을 탐색 할 것),'file' 매개 변수를 파일의 이름으로 설정하여 read.xxx 함수를 호출하십시오. 당신은 R의 소개를 읽어 보았습니까? http://cran.r-project.org/doc/manuals/R-intro.html. 매우 도움이 될 수 있습니다! – Chase

+0

체이스 : 고맙습니다. 저는 그래프를 플로팅하는 것과 같은 간단한 작업을하기 전에 R을 사용했습니다. 어쨌든, 당신은 매우 도움이됩니다. 오늘 오후에 reshape2를 설치했지만로드하는 것을 잊었습니다. 또한 read.delim() 함수를 사용하여 파일을 읽었고 지시 사항을 따르고 찾고있는 출력을 얻었습니다. 다시 감사드립니다. Deven – user1252544

관련 문제