2017-11-30 5 views
1

ディレクトリ内にタブで区切られた22のテキストファイルがあります。実際には、私はすべてのテキストファイルの6番目の列を必要とし、1つのファイルにそれらをマージします。私はこれらのコマンドを以下に書いています。ディレクトリ内のすべてのファイルの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

は9月=「\ T、X(read.tableを '試してみてください"、stringsAsFactors = FALSE)[、6]'または '[、6、drop = FALSE]'を使用します。 – zx8754

答えて

1

ファイルを読むとき、6番目の列は係数に変換されます。私たちは、文字として文字列を維持することができます:

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) 
関連する問題