2013-03-18 6 views
0

파일에서 읽은 데이터 테이블에 열 이름을 지정하고 싶지만 나에게 합당하지 않은 오류 메시지가 나타납니다. 이 데이터 파일에서 발췌 한 것입니다 : 이제read.table error : 같은 데이터 파일이지만 열 번호가 일치하지 않습니다.

HEADER SPOT GRID TOP LEFT BOT RIGHT ROW COL CH1I CH1B CH1AB CH2I CH2B CH2AB SPIX BGPIX EDGE RAT2 MRAT REGR CORR LFRAT CH1GTB1 CH2GTB1 CH1GTB2 CH2GTB2 CH1EDGEA CH2EDGEA FLAG CH1KSD CH1KSP CH2KSD CH2KSP 
REMARK SOFTWARE ScanAlyze 
REMARK SOFTVERS 2.30 
REMARK CH1 IMAGE lc8n076_532 nm 
REMARK CH2 IMAGE lc8n076_635 nm 
REMARK GRID FILE ..\..\AshGrids\lc8n076_ar_finalflagged.SAG 
REMARK DATE 8/28/99 
REMARK TIME 9:12:58 AM 
SPOT 1 1 79 48 96 65 1 1 187 174 183 115 101 104 225 990 0 1.077 0.6214 0.2045 0.3047 0.3411 0.5111 0.4978 0.1911 0.2089 0.006432 -0.00362 0 0.04242 8.898E-01 0.09556 6.597E-02 
0... 

, 내가 처음에 헤더를 읽어 다음

blood_title <- read.table("lc8n076rex2.DAT", header=FALSE, sep="\t", nrows=1) 

을 그리고, 나는, 테이블의 나머지 부분을 읽어 col.names로 사용 내가 열 이름과 blood_title 변수를 사용하여 원하는 위치 :

01 : 불행하게도

blood_data <- read.table("lc8n076rex2.DAT", header=FALSE, skip=8, nrows=5, col.names="blood_name") 

를, 나는 이해하지 못하는 오류 메시지가

왜이 오류가 표시됩니까? 모두, 테이블 및 blood_title의 열 이름은이 (34 개) 컬럼으로 구성

V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20 V21 V22 V23  V24  V25 
1 HEADER SPOT GRID TOP LEFT BOT RIGHT ROW COL CH1I CH1B CH1AB CH2I CH2B CH2AB SPIX BGPIX EDGE RAT2 MRAT REGR CORR LFRAT CH1GTB1 CH2GTB1 
     V26  V27  V28  V29 V30 V31 V32 V33 V34 
1 CH1GTB2 CH2GTB2 CH1EDGEA CH2EDGEA FLAG CH1KSD CH1KSP CH2KSD CH2KSP 




    V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18  V19  V20 V21 V22  V23 V24 V25 V26 
1 SPOT 1 1 79 48 96 65 1 1 187 174 183 115 101 104 225 990 0 1.0770 0.6214 0.2045 0.3047 0.34110 0.5111 0.4978 0.1911 
2 SPOT 2 1 78 65 95 82 1 2 451 166 177 842 101 133 225 756 0 2.6000 2.1550 1.9440 0.7322 3.40300 0.7467 0.7467 0.5067 
3 SPOT 3 1 78 83 95 100 1 3 727 171 187 12803 98 134 225 766 0 22.8500 20.1900 0.0000 0.0000 0.06008 0.7289 0.8711 0.5600 
4 SPOT 4 1 78 100 95 117 1 4 1532 181 196 730 98 108 225 746 0 0.4678 0.4773 0.4028 0.8788 0.42010 0.7867 0.8000 0.6311 
5 SPOT 5 1 78 118 95 135 1 5 4139 188 214 20358 105 159 225 746 0 5.1260 4.7240 0.0000 0.0000 5.58600 0.8533 0.9289 0.7156 
    V27  V28  V29 V30  V31  V32  V33  V34 
1 0.2089 0.0064320 -3.620e-03 0 0.04242 8.898e-01 0.09556 6.597e-02 
2 0.5689 -0.0007581 -2.205e-03 0 0.38510 3.391e-23 0.46000 6.426e-33 
3 0.7600 -0.0164600 8.613e-06 0 0.44400 8.761e-31 0.65230 0.000e+00 
4 0.6356 -0.0104900 6.777e-03 0 0.51220 1.389e-40 0.52090 5.747e-42 
5 0.8356 -0.0209900 -9.983e-03 0 0.60900 0.000e+00 0.70760 0.000e+00 

편집 :

이 내가이 특정 순서

> blood_title <- read.table("lc8n076rex2.DAT", header=FALSE, sep="\t", nrows=1) 
> blood_data <- read.table("lc8n076rex2.DAT", header=FALSE, skip=8, nrows=5, col.names=unlist("blood_title")) 
Error in read.table("lc8n076rex2.DAT", header = FALSE, skip = 8, nrows = 5, : 
    more columns than column names 
> blood_title 
     V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18 V19 V20 V21 V22 V23  V24  V25 
1 HEADER SPOT GRID TOP LEFT BOT RIGHT ROW COL CH1I CH1B CH1AB CH2I CH2B CH2AB SPIX BGPIX EDGE RAT2 MRAT REGR CORR LFRAT CH1GTB1 CH2GTB1 
     V26  V27  V28  V29 V30 V31 V32 V33 V34 
1 CH1GTB2 CH2GTB2 CH1EDGEA CH2EDGEA FLAG CH1KSD CH1KSP CH2KSD CH2KSP 
> blood_data 
    V1 V2 V3 V4 V5 V6 V7 V8 V9 V10 V11 V12 V13 V14 V15 V16 V17 V18  V19  V20 V21 V22  V23 V24 V25 V26 
1 SPOT 1 1 79 48 96 65 1 1 187 174 183 115 101 104 225 990 0 1.0770 0.6214 0.2045 0.3047 0.34110 0.5111 0.4978 0.1911 
2 SPOT 2 1 78 65 95 82 1 2 451 166 177 842 101 133 225 756 0 2.6000 2.1550 1.9440 0.7322 3.40300 0.7467 0.7467 0.5067 
3 SPOT 3 1 78 83 95 100 1 3 727 171 187 12803 98 134 225 766 0 22.8500 20.1900 0.0000 0.0000 0.06008 0.7289 0.8711 0.5600 
4 SPOT 4 1 78 100 95 117 1 4 1532 181 196 730 98 108 225 746 0 0.4678 0.4773 0.4028 0.8788 0.42010 0.7867 0.8000 0.6311 
5 SPOT 5 1 78 118 95 135 1 5 4139 188 214 20358 105 159 225 746 0 5.1260 4.7240 0.0000 0.0000 5.58600 0.8533 0.9289 0.7156 
    V27  V28  V29 V30  V31  V32  V33  V34 
1 0.2089 0.0064320 -3.620e-03 0 0.04242 8.898e-01 0.09556 6.597e-02 
2 0.5689 -0.0007581 -2.205e-03 0 0.38510 3.391e-23 0.46000 6.426e-33 
3 0.7600 -0.0164600 8.613e-06 0 0.44400 8.761e-31 0.65230 0.000e+00 
4 0.6356 -0.0104900 6.777e-03 0 0.51220 1.389e-40 0.52090 5.747e-42 
5 0.8356 -0.0209900 -9.983e-03 0 0.60900 0.000e+00 0.70760 0.000e+00 
> 

EDIT2에 사용 된 전체 코드입니다 :

문제가 해결 가변 blood_title을 맺다 잊었

답변

0

두 가지가 있습니다. 먼저 이름을 blood_title으로 저장 한 다음 col.names=blood_nameblood_data에 사용하고 있습니다. 이게 오타 인 것 같아요 ...?

두 번째 (더 중요한 것은) 실제 문제는 모든 열 이름 대신 "blood_name"값 하나가 col.names 인 문자 벡터 만 제공한다는 것입니다. 이것을 시도하십시오 :

blood_data <- read.table("lc8n076rex2.DAT", header=FALSE, 
        skip=8, nrows=5, col.names=unlist(blood_title)) 
+1

실례지만, 이것은 실제로 유형이었습니다. 귀하의 제안은 합리적으로 들리지만 여전히 작동시킬 수는 없습니다. 내가 한 일의 세션을 복사하여 내 질문에 붙여 넣습니다. 당신의 도움을 주셔서 감사합니다. 편집 : 죄송합니다, 문제가 해결되면 변수를 인용 부호를 깜박! 감사! –

관련 문제