2017-11-30 2 views
1

디렉토리 안에 탭으로 구분되는 22 개의 텍스트 파일이 있습니다. 사실, 모든 텍스트 파일의 여섯 번째 열만 필요하고 하나의 파일로 병합합니다. 아래의 명령을 쓸 때;디렉토리의 모든 파일의 n 번째 열을 하나로 합치기

filenames = list.files() 
my.list = lapply(X = filenames, FUN = function(x) {read.table(x, sep = "\t")[,6]}) 
my.df <- do.call("cbind", my.list) 

이러한 명령의 결과로, 22 열에는 my.df 파일이 있지만 그 열 안의 값은 이상하게 txt 파일이 아닙니다. 이 데이터의 출처를 찾을 수 없었습니다.

+2

시도를'read.table (X 9 월은 = "\ T는 ", stringsAsFactors = FALSE) [, 6]'또는'[, 6, drop = FALSE]'를 사용하십시오. – zx8754

답변

1

파일을 읽을 때 여섯 번째 열은 factor로 변환됩니다. 우리는 문자로 문자 열을 유지할 수 있습니다 :

my.list = lapply(X = filenames, FUN = function(x) { 
    read.table(x, sep = "\t", stringsAsFactors = FALSE)[,6]}) 
my.df <- do.call("cbind", my.list) 

또는 6 열 서브 세트 때 우리는 data.frame으로 data.frame을 유지할 수 있습니다 :

my.list = lapply(X = filenames, FUN = function(x) { 
    read.table(x, sep = "\t")[, 6, drop = FALSE]}) 
my.df <- do.call("cbind", my.list) 
관련 문제