2016-11-02 7 views
1

データを抽出し、抽出したデータを対応するcsvファイルとして出力したい大きなデータファイルがあります。私はこの仕事をするために(関数の中で)次のコードを使用しヘッダー内の余分なタブ

...

データ内のヘッダ行...除いて、正常に動作
A <- read.table(file=InputFile, 
        skip=36, sep="\t", header=TRUE, 
        quote="\"",stringsAsFactors=FALSE) 
    write.csv(A,file=OutputFile, row.names=FALSE) 

(ライン37)は1つの余分のタブがあります。これは、私がメモ帳(または類似の)でファイルを開き、タブを削除してから関数を適用する必要があることを意味します。

誰もこの余分なタブを削除するコードはありますか?ここではいくつかの明快さを追加するには

は、ファイルが

lines of data to be skipped 
apples\toranges\tgrapes\t 
1\t3\t5 
2\t8\t3 

...のように見える...と、ここで私はそれが

lines of data to be skipped 
apples\toranges\tgrapes 
1\t3\t5 
2\t8\t3 

ように見えるしたいものであるものの一例である\ tはファイル内のタブを表し、変更されたデータに自分のコードを適用した後のヘッダ行になる余分なタブに注目します。

+0

私は理解していません。あなたは小さな例を共有したいですか?ファイル内の1つの特定の行が、1つのタブを多く保持していますか?最初の36行は破棄されますか?ヘッダーが間違っている場合は、変数名をシフトさせる必要があります。これらの変数を移動するのは難しくありません。 –

+0

例が提供されています。これがreadLines問題かどうか疑問に思っています。 – user1945827

答えて

0

これが最良の回答であるかどうかはわかりませんが、改善は歓迎します。 readLines()とwriteLines()を次のように使用して問題を回避しました。

blah 
blah 
blah 
apples oranges grapes 
1 2 3 
3 2 1 

を次のように

はまず、私はそれは明白でないかもしれませんが、余分なタブはヘッダ行する内容で、ブドウの後にありますサンプルテキストファイルを持っています。

私は機能を使用する場所は次の通り私は

trim.trailing <- function (x) sub("\\s+$", "", x) 

How to trim leading and trailing whitespace in R?ここf3lixから有用な機能を見つけ

A <- readLines("sample01.txt", n = -1,skipNul=TRUE) 

、テキストファイルを読み込むには、次のコードを使用

A[4] <- trim.trailing(A[4]) 

私はヒアになることを最後のタブなしでファイルを作成しましたデルのコラム次のテキストファイルを与えた

writeLines(A, con = "sample02.txt", sep = "\n", useBytes = FALSE) 

、末尾のタブを持っていない

blah 
blah 
blah 
apples oranges grapes 
1 2 3 
3 2 1 

。つまり、元の関数(36行ではなく3行をスキップしてファイル名を変更する必要があるなどのマイナーな変更を加えて)で使用できることを意味します。

これは機能しますが、そこにいる誰かがうまくいくと確信しています。

関連する問題