2016-08-28 33 views
0

私はフォルダからファイルを読み込み、それらを数え、各ファイルを通過する長さのループを使用しようとしています。cat関数を使用し、最初のファイルにput.txtファイルから値を読み込んで出力ファイルに書き込む

  • FILE1: output.txtとでの出力は次のようにすることが猫の出力
  • FILE2:

    :猫の出力

は私のコードは次のようになります

entry = list.files(path = "//Users//michael/Desktop//test_folder", full.names = TRUE, recursive = TRUE) 
output = list.files(path = "//Users//michael/Desktop//list.txt", full.names = TRUE, recursive = TRUE) 
len = length(entry) 
for(i in 1){ 
cat(entry,file="//Users//michael/Desktop//list.txt", sep="\t", append=TRUE) 
cat("\n",file="//Users//michael/Desktop//list.txt", append=TRUE) 
} 

また、私はfor(i in 1:len)で試したことがありますが、これは 'i'の繰り返しごとにこのx3を長くするためです。各1

  • 改行(\ n)でのファイル2.txtは同様の値を持っている

    • 値(ジョン、マイケル、ファビアン)でファイル1.TXT
    • :よう

      私test_folderに見えます私は(私の場合2)ファイルの数をカウントし、私のtest_folderをロードしようとしています
      を、forループ内の各ファイルを通過し、catそれらので、私は内側に何を見ることができ、その後、内部の値を印刷:要約する

    私のlist.txt(出力

    • FILE1::)のような形式で猫出力
    • FILE2は:猫の出力

    はどこに私のミスで、どのように出力/変更されたコードは、この作業を行うために、次のようになりますか?

    +0

    あなたの目的が何であるか理解しようとしています:あなたが生産しようとしている最終製品は何ですか? –

    +0

    @MichaelDavidsonそれは学習曲線です。私はちょうどフォルダー内のファイルを通過したい(.txtファイルのみ)>それらをcatし、その値をoutput.txtファイルに出力したい。単なる学習曲線です。後で私は他の何かをする関数でいくつかのコードをスワップします。あなたはどのように私はこれを行うことができます入力がありますか?ありがとう! – Michael

    答えて

    1

    私が正しく理解していれば、複数の.txtファイルを1つのディレクトリから開き、その内容を連結したいと考えています。私はlist.files(あなたのようなものです)を使用し、次にlapplyreadLinesを使用してこれらのファイルを開くことをお勧めします。

    .txtファイルの場所を取得します。これは、ディレクトリ(ファイルの場所)というリストの各要素を持つリストを生成します。

    dirs <- list.file(path="path/to/input/directory", full.path=TRUE) 
    

    は(あなたのforループのような)リストの要素を反復し、機能readLinesでそれらを開くために使用しますlapply。これはdirsと同じ数の要素を持つリストを作成するが、今回はそれがテキストファイルの内容が含まれています

    myfiles <- lapply(dirs, readLines) 
    

    最後に、(それぞれが1つのテキストファイルの内容を含む)のリストのこれらの要素を組み合わせました単一のテキストファイルとして保存することができる1つのオブジェクトに変換します。

    dat <- do.call("rbind", myfiles) # note rbind might need to be replaced with "c" depending on the contents of the .txt files 
    

    申し訳ありませんが、私は何かが不足しているか誤解しています。コメントしてください、私はそれに応じて適応します。

    +0

    これは実際には機能しました!私はあなたに2番目の質問があります。今私はいくつかのフォルダから画像を読み込み、** mxnet **ライブラリを使用して画像の結果を取得しようとしています。私はフォルダから画像をロードし、その上にウサギがある場合は、「それは90%のウサギ」のように出力する必要があります。私は1つのイメージのために働くバージョンを持っていますが、今、私は複数のためにそれを変更しようとしています。それがすべての理由です。何かヒントはありますか? :)また、ソリューションのおかげで – Michael

    +1

    うれしかった。私はこれらのチュートリアルのいくつかをチェックします:http://mxnet.io/packages/r/index.html私はそのパッケージを使用していません。試してみたら、新しい質問を投稿することができます。 –

    関連する問題