1
Rを使用して1つのデータセットに数千の単一XMLファイルをインポートしようとしています。Rを使用して1つのXMLを1つの大きなCSVにインポートする
現在、私は使用しています:
file_list <- list.files()
for (file in file_list){
# if the merged dataset doesn't exist, create it
if (!exists("dataset")){
dataset <- read.table(file, header=FALSE, stringsAsFactors=FALSE,
sep="\t")
}
# if the merged dataset does exist, append to it
if (exists("dataset")){
temp_dataset <-read.table(file, header=FALSE,
stringsAsFactors=FALSE, sep="\t")
dataset<-rbind(dataset, temp_dataset)
rm(temp_dataset)
}}
これが動作しているようですが、私は、単一の大規模なXMLまたはCSVファイルのいずれかにXMLファイルを取得するためのより良い方法があるに違いありません知っています。しかし
require("data.table")
# files path
setwd("path/to/your_data")
# list containing your file names
file_list = list.files()
# read data and save in a list
mydata <- lapply(file_list, read.table, header = FALSE, sep = "\t")
mydata <- rbindlist(mydata) # merge list to one data frame
あなたは、パフォーマンスの問題がある場合でも、プロセス並列化することができます:
# reading data in parallel cores
require(parallel)
no_cores <- detectCores()
cl <- makeCluster(no_cores)
clusterEvalQ(cl, {library("parallel")}) # install dependencies in cores
clusterExport(cl=cl, varlist=c("file_list")) # global variables
mydata <- parLapply(cl, file_list, read.table, header = FALSE, sep = '\t')
mydata <- rbindlist(mydata) # merge list to one data frame
を右方向への任意のポインタは心から私がきちんと働いていた数ヶ月前に何かをした
これは私がやっていたものよりもきれいで、このPCには6つのコアだからX6 :)ありがとう! – Flufylobster
あなたはようこそ... – Codutie