私は最終的にrに読み込まれ、1つの大きなファイルにバインドされる私のWDに44個の.csvファイルがあります。私がそれをする前に、それぞれのファイルにいくつかの変更を加えたいと思います。ファイルの一部 複数の.csvファイルをrに読み込む前に編集
におけるいくつかの列名
- 変更)が、私はにしたいです私が欲しい場所に私を連れて行くには十分ではありません。 2)については、これは非常に単純なはずですが、私はオンラインで解決策を見つけることができません。
多くの感謝!
私は最終的にrに読み込まれ、1つの大きなファイルにバインドされる私のWDに44個の.csvファイルがあります。私がそれをする前に、それぞれのファイルにいくつかの変更を加えたいと思います。ファイルの一部 複数の.csvファイルをrに読み込む前に編集
におけるいくつかの列名
多くの感謝!
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に情報を送り返すことができます。
とあなたが
上lapply
とdata.table
缶の組み合わせを述べたように、すべてのCSVの列は最初の10を維持するためには、同じ位置と名前を持っている場合にのみ使用します奇跡を起こす特に:
rbindlist(lapply(list.files("path/to/the/folder/with/csvs"),fread),use.names=TRUE, fill=FALSE)
は、ほとんどのデータインポートの問題を解決します。
ありがとう!これは私が特定の点にしたいことをしましたが、そこにファイル名の列を追加する必要があることに気がつきました。 –
これは、あなたが探している出力を得るために機能する場合があります。
# 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)
ありがとう!これはまさに私が探していたものです。 –
列を選択できる関数(すべて行を制限できる)で読み込んでください。 'readr :: read_csv'です。または、それを読んで、必要のないものをサブセット化してください。 – alistaire