하나의 .txt 파일에 여러 개의 테이블이 있습니다. 이들 각각을 자체 데이터 프레임으로 읽는 방법이 있습니까? 각 '표'앞에는 제목이있는 줄이 있기 때문에 제목을 검색 할 수 있습니다.단일 텍스트 파일에서 여러 테이블을 읽으시겠습니까?
도움 주셔서 감사합니다.
하나의 .txt 파일에 여러 개의 테이블이 있습니다. 이들 각각을 자체 데이터 프레임으로 읽는 방법이 있습니까? 각 '표'앞에는 제목이있는 줄이 있기 때문에 제목을 검색 할 수 있습니다.단일 텍스트 파일에서 여러 테이블을 읽으시겠습니까?
도움 주셔서 감사합니다.
전체 파일을 읽은 다음 테이블 헤더 또는 빈 줄에 대해 구문 분석하려고합니다. 헤더를 txt 파일의 테이블을 변경할 때 쉽게 변경할 수 있도록 설정하고 스크립트 맨 위에 놓아야합니다.
간단한 google 검색에서이를 반환했습니다. 나를 위해 완벽하게 일했습니다.
> x <- readLines(textConnection("1
+ Pietje
+ I1 I2 Value
+ 1 1 0.11
+ 1 2 0.12
+ 2 1 0.21
+
+ 2
+ Jantje
+ I1 I2 I3 Value
+ 1 1 1 0.111
+ 3 3 3 0.333"))
> closeAllConnections()
> start <- grep("^[[:digit:]]+$", x)
> mark <- vector('integer', length(x))
> mark[start] <- 1
> # determine limits of each table
> mark <- cumsum(mark)
> # split the data for reading
> df <- lapply(split(x, mark), function(.data){
+ .input <- read.table(textConnection(.data), skip=2, header=TRUE)
+ attr(.input, 'name') <- .data[2] # save the name
+ .input
+ })
> # rename the list
> names(df) <- sapply(df, attr, 'name')
> df
$Pietje
I1 I2 Value
1 1 1 0.11
2 1 2 0.12
3 2 1 0.21
$Jantje
I1 I2 I3 Value
1 1 1 1 0.111
2 3 3 3 0.333
감사합니다. 그래서 나는 모든 것을'lines <- scan (inFile, what = "character", sep = "\ n")'으로 읽도록했다. 첫 번째 테이블은 첫 번째 행의 제목과 첫 번째 행의 머리글과 첫 번째 열의 row.names를가집니다. 테이블의 데이터 부분은 항상 32 줄입니다. 첫 번째 테이블을 어떻게 잡을 수 있습니까? – James
필자는 readLines를 사용했을 것입니다. 왜냐하면 (내가 무엇을 얻을지 알고 있기 때문에) 세그먼트를 입력으로 사용했기 때문입니다. 'read.table (textConnection (lines [2:33])' –