2010-01-11 4 views
2

R으로 가져 오려는 텍스트 파일이 있습니다. 문제는 다음과 같은 파일입니다.텍스트 파일에서 줄 바꿈을 사용하여 데이터를 R으로 가져 오는 방법은 무엇입니까?

x1,x2,x3,x4,x5,x6,x7,x8,x9,10,x11 
    1953.00  7.40000  159565.  16.6680  8883.00  
    47.2000  26.7000  16.8000  37.7000  29.7000  
    19.4000  
    1954.00  7.80000  162391.  17.0290  8685.00  
    46.5000  22.7000  18.0000  36.8000  29.7000  
    20.0000 

등등.

시도했지만 > data <- read.table("clipboard", header=TRUE) 시도했지만 작동하지 않았다.

+0

일부 설명을. 헤더는 쉼표로 구분 된 단일 문자열이며 데이터 자체는 공백으로 구분됩니까? –

+0

필자는'read.table'에 도움을 받고 구분 기호, 채우기 등과 같은 옵션을 사용한다고 가정합니다. '작동하지 않았습니다'라는 내용의 오류 메시지를 복사하여 붙여 넣을 수 있습니다. 컴퓨터가 꺼져있을 수도 있습니다.) – Marek

+0

정확히 무엇이 문제입니까? 첫 번째 데이터 라인이 헤더와 같은 라인에 있습니까? – dalloliogm

답변

0

수동으로 첫 번째 줄을 수정하고 (""로 변경하고 줄 바꿈을 삽입 한 후) 다시 시도 할 수 있습니까?

+0

일종의 read.csv 명령은 일종의 관찰을 위해 모든 변수 값을 반환하는 대신 (원하는 값), 각 관측 값에 대한 변수 값을 두 줄 이상으로 씁니다 (원하지 않는 결과입니다) . 까다 롭습니다 – Stu

+0

그래서 한 관찰은 3 라인에있는 것 같습니다. 나는 이것이 read.csv에 의해 처리 될 수 있다고 생각하지 않는다. 어쩌면 당신은 readLines을 시도해 볼 수 있으며 for 루프를 실행하여 각 관찰에 대한 데이터를 연결시킬 수 있습니까? –

-1

read.table 대신 read.csv을 사용하고 read.csv에 인수에 skip=1, header=FALSE을 추가하십시오.

3

데이터가 잘못 형성되어 있지만 여전히 주어진 구문 분석 할 수있는 다음과 같은 가정 : 헤더는 (결과 테이블의 열)이

  • 는 데이터 자체가 완료된 얼마나 많은 변수 정의

    • - 예. 누락 된 값이 없다
    • 데이터는 일정한 타입 (예 numeric())

    다음 그것이 data.txt라는 텍스트 파일로부터 읽어 것처럼 제공된 측정 데이터를 분석 코드 :

    # read in the header and split on "," 
    header = strsplit(readLines('data.txt', n=1), ',')[[1]] 
    
    # the length of the header determines how many variables there are 
    
    # read in the data which appears to have the pattern 
    # <numbers><whitespace><numbers>... 
    # skipping the first line since it was already parsed as the header 
    data = scan('data.txt', skip=1, what=numeric()) 
    
    # reform the data (which is read in as a 1D numeric vector) into a 2D matrix 
    # with the same number of columns as there are headers (filling by rows). 
    # header names are assigned via the `dimnames=` argument 
    data = matrix(data, ncol=length(header), byrow=T, dimnames=list(NULL, header)) 
    

    다음과 같은 출력을 생성 :

     x1 x2  x3  x4 x5 x6 x7 x8 x9 x10 x11 
    [1,] 1953 7.4 159565 16.668 8883 47.2 26.7 16.8 37.7 29.7 19.4 
    [2,] 1954 7.8 162391 17.029 8685 46.5 22.7 18.0 36.8 29.7 20.0