2017-05-31 22 views
0

私は最終的にrに読み込まれ、1つの大きなファイルにバインドされる私のWDに44個の.csvファイルがあります。私がそれをする前に、それぞれのファイルにいくつかの変更を加えたいと思います。ファイルの一部 複数の.csvファイルをrに読み込む前に編集

  • を選択し、私は問題1用のGSUB上のいくつかの情報を発見した各ファイルの最初の10列
  • におけるいくつかの列名

    1. 変更)が、私はにしたいです私が欲しい場所に私を連れて行くには十分ではありません。 2)については、これは非常に単純なはずですが、私はオンラインで解決策を見つけることができません。

      多くの感謝!

    +1

    列を選択できる関数(すべて行を制限できる)で読み込んでください。 'readr :: read_csv'です。または、それを読んで、必要のないものをサブセット化してください。 – alistaire

    答えて

    0

    readLinesはあなたの友人です。それぞれを別々のベクターとしてインポートしてみてください。 my_csv<-readLines("path/to/your/csv")はその後の修正を行い、最終的には次のように出力を保存:

    out <- capture.output(my_csv) 
    cat(out, file="my_new.csv", sep="\n", append=F) 
    

    しかし

    私は強くdata.tableパッケージとdata.tableオブジェクトとしてCSVの(の速いインポートすることができます特にfread()の機能を使用することをお勧めします)、次に10列の選択と名前の変更の両方を実行します。 もちろん、fwrite()経由で、いつでもcsvに情報を送り返すことができます。

    FINALLY

    とあなたが

    lapplydata.table缶の組み合わせを述べたように、すべてのCSVの列は最初の10を維持するためには、同じ位置と名前を持っている場合にのみ使用します奇跡を起こす特に:

    rbindlist(lapply(list.files("path/to/the/folder/with/csvs"),fread),use.names=TRUE, fill=FALSE) 
    

    は、ほとんどのデータインポートの問題を解決します。

    +0

    ありがとう!これは私が特定の点にしたいことをしましたが、そこにファイル名の列を追加する必要があることに気がつきました。 –

    0

    これは、あなたが探している出力を得るために機能する場合があります。

    # Set path to folder 
        folder.path <- getwd() 
    
    # Get list of csv files in folder 
        filenames <- list.files(folder.path, pattern = "*.csv", full.names = TRUE) 
    
    # Read all csv files in the folder and create a list of dataframes 
        ldf <- lapply(filenames, read.csv) 
    
    # Select the first 10 columns in each dataframe in the list 
        ldf <- lapply(ldf, subset, select = 1:10) 
    
    # Create a vector for the new column names 
        new.col.names <- c("col1","col2","col3","col4","col5","col6","col7","col8","col9","col10") 
    
    # Assign the new column names to each dataframe in the list 
        ldf <- lapply(ldf, setNames, new.col.names) 
    
    # Combine each dataframe in the list into a single dataframe 
        df.final <- do.call("rbind", ldf) 
    
    +0

    ありがとう!これはまさに私が探していたものです。 –

    関連する問題