以下の回避策で問題を解決します。しかし、この問題を解決する最良の方法ではありません。私はを2回エクセルファイルを読み取るファイルが非常に大量のデータを持っている場合は、パフォーマンスにヒットします。
まず読む:建物の列のデータ型ベクター - (、列名のように、列の数とそれがタイプだ)の列情報を取得するためのファイルを読み込むと、列ごとにdatatype
を持つことになりますcolumn_data_types
vector
を構築ファイル内にあります。
#reading .xlsx file
site_data_columns <- read_excel(paste(File$datapath, ".xlsx", sep = ""))
site_data_column_names <- colnames(site_data_columns)
for(i in 1 : length(site_data_column_names)){
#where date is a column name
if(site_data_column_names[i] == "date"){
column_data_types[i] <- "date"
#where result is a column name
} else if (site_data_column_names[i] == "result") {
column_data_types[i] <- "numeric"
} else{
column_data_types[i] <- "text"
}
}
第2の読み出し:は、Excelファイルを読み取るたContentファイルを読み込みカラムdata types
を有するvector
column_data_types
とcol_types
パラメータを供給すること。
#reading .xlsx file
site_data <- read_excel(paste(File$datapath, ".xlsx", sep = ""), col_types = column_data_types)
短い答えはいいえです。 'reader :: cols'のようなものではありません。構造が非常に規則的であれば、あなたはそれを偽造することができるかもしれませんが、それはあなたのもののようには聞こえません。より単純なオプションは、すべてのものとサブセットを読み込むだけです。型が問題を引き起こしている場合は、すべてを文字として読み取り、 'readr :: type_convert'または' lapply' 'type.convert'を使用してクリーンアップしてください。 – alistaire
うん。私はあなたが言及したオプションについて考えました。私はちょうどタイプ変換のポストファイルの読み込みのオーバーヘッドを避けたかった。しかし、あなたが他の選択肢がないと言ったように、私はそれと一緒に行く必要があるかもしれません。 –
正直なところ、15種類の変数を使用すると、データが何百万行になるまで時間の型変換にかかる時間は無視できます。 – alistaire