2014-07-17 2 views
0

다음 데이터 세트가 있습니다 (이 파일은 처음 10 줄이고> 500). 각 행은 공간의 고유 한 위치와 사이트를 설정 한 날짜 및 승무원을 나타냅니다. NUMGB 열은 해당 사이트에 붙 잡혔다 얼마나 많은 곰, 그리고 GBIDSEX1는 GBIDSEX8에 나는, 내가 필요로 할 싶은 분석을 위해 사이트세미 플랫 파일에서 실제 플랫 파일 만들기

df <- read.table(text= 'CELL SITE INSTCREW INSTDATE NUMGB GBIDSEX1 GBIDSEX2 GBIDSEX3 GBIDSEX4 GBIDSEX5 GBIDSEX6 GBIDSEX7 GBIDSEX8 
1 1 DF/EJ 2000-06-02   
2 1 DF/EJ 2000-06-02 3 F6514-001 M6514-012 F6514-023  
3 1 DF/EJ 2000-06-02 1 SPTEST  
4 1 DF/EJ 2000-06-02   
5 1 DF/EJ 2000-06-02 1 M6643-015  
6 1 DF/EJ 2000-06-02   
7 1 DF/EJ 2000-06-02 1 M6514-012  
8 1 DF/EJ 2000-06-02 2 F6566-001 M6509-005  
9 1 DF/EJ 2000-06-02   
10 1 DF/KP 2000-06-01 5 M6505-001 M6505-010 F6514-001 M6514-012 F6514-02 ' ,header=TRUE, sep=" ") 

에 붙 잡혔다 그 곰에 대한 개별 식별자를 제공 각 ID를 사이트, 승무원 및 날짜 정보와 함께 고유 한 행으로 식별해야합니다. 여기에 내가보고 데이터를 원하는 방법의 예는 다음과 같습니다

CELL SITE INSTCREW INSTDATE NUMGB GBIDSEX 
2 1 DF/EJ 2000-06-02 3 F6514-001 
2 1 DF/EJ 2000-06-02 3 M6514-012 
2 1 DF/EJ 2000-06-02 3 F6514-023 
3 1 DF/EJ 2000-06-02 1 SPTEST 
5 1 DF/EJ 2000-06-02 1 M6643-015 
7 1 DF/EJ 2000-06-02 1 M6514-012 
8 1 DF/EJ 2000-06-02 2 F6566-001 
8 1 DF/EJ 2000-06-02 2 M6509-005 
10 1 DF/KP 2000-06-01 5 M6505-001 
10 1 DF/KP 2000-06-01 5 M6505-010 
10 1 DF/KP 2000-06-01 5 F6514-001 
10 1 DF/KP 2000-06-01 5 M6514-012 
10 1 DF/KP 2000-06-01 5 F6514-023 

I 쉽게 일부 기능을 수행에는 곰이 적발되지 않았다 행 추려 싶습니다

dfcull<-subset(df, NUMGB>0) 

을 하지만 각 GBIDSEX에 대해 고유 한 행을 만드는 방법을 잘 모르겠습니다. 이견있는 사람?

답변

1

당신은 "reshape2"에서 아주 쉽게 melt이를 얻을 수 있습니다 :

library(reshape2) 
df[df == ""] <- NA 
melt(df, na.rm=TRUE, 
    id.vars=c("CELL", "SITE", "INSTCREW", "INSTDATE", "NUMGB")) 
# CELL SITE INSTCREW INSTDATE NUMGB variable  value 
# 2  2 1 DF/EJ 2000-06-02  3 GBIDSEX1 F6514-001 
# 3  3 1 DF/EJ 2000-06-02  1 GBIDSEX1 SPTEST 
# 5  5 1 DF/EJ 2000-06-02  1 GBIDSEX1 M6643-015 
# 7  7 1 DF/EJ 2000-06-02  1 GBIDSEX1 M6514-012 
# 8  8 1 DF/EJ 2000-06-02  2 GBIDSEX1 F6566-001 
# 10 10 1 DF/KP 2000-06-01  5 GBIDSEX1 M6505-001 
# 12 2 1 DF/EJ 2000-06-02  3 GBIDSEX2 M6514-012 
# 18 8 1 DF/EJ 2000-06-02  2 GBIDSEX2 M6509-005 
# 20 10 1 DF/KP 2000-06-01  5 GBIDSEX2 M6505-010 
# 22 2 1 DF/EJ 2000-06-02  3 GBIDSEX3 F6514-023 
# 30 10 1 DF/KP 2000-06-01  5 GBIDSEX3 F6514-001 
# 40 10 1 DF/KP 2000-06-01  5 GBIDSEX4 M6514-012 
# 50 10 1 DF/KP 2000-06-01  5 GBIDSEX5 F6514-02 
+0

나는 내 자신의 데이터에 그것을 할 때 나는이 경고 메시지가 나타납니다 : "경고 메시지 : 특성 측정 변수에 걸쳐 동일하지 않다; 그들은 떨어 뜨릴 것이다 "나는 위에서 제공된 데이터와 당신이 제공 한 용융 함수를 사용하여 다시 시도했지만 여전히 같은 오류가 발생한다. 나는 모든 GBIDSEX 칼럼을 as.factor로 만들려고했으나 그것도 – ctlamb

+1

@ctlamb을 사용하지 못했지만 실제로는 문자가 아닌 인자로 모두 만들고 싶습니다. 그러나 다른 속성 (예 : 요소 수준)이 있다는 것은 단지 경고 일뿐입니다. – A5C1D2H2I1M1N2O1R2T1