私はRに慣れていますので、私に同行してください。 私はこのような遅延ロードされたデータフレームのリストを持っている:関数であるサブリストの選択されたメンバーをfor()ループなしでR内の1つのリストにマージする方法はありますか?
dataPath <- "C:\\R_data"
dataFramesByYear <-
lapply(
list.files(dataPath, "*dataFrame.[2][0-9][0-9][0-9].feather"),
function(fileName) {
lazyDataFeather(fileName)
})
私はデータは、()ファイルまたは戻り、以前にロードされたデータとisLoadedをロードのどちらかということの関数であるdataFramesByYear(このような構造になってしまいますブール値):
list(list(data = data(), isLoaded))
これらの年単位のデータフレームを1つにまとめたいと思います。私は)(私はこのような何かをしてrbindlistを使用することができます知っている:
framesList <- list(dataFramesByYear[[1]]$data(), dataFramesByYear[[2]]$data(), dataFramesByYear[[3]]$data())
combinedData <-
as.data.frame(
rbindlist(
framesList,
use.names = TRUE))
は時々年のインデックスが(RStudioは、「範囲外のインデックス」を報告します)しかし、これは動作しません、ベクトルとして供給されています
yearIndexes <- 1:3
framesList <- dataFramesByYear[[yearIndexes]]$data()
for()ループを使用せずにframesListを定義する方法はありますか?
「複数」とはどういう意味ですか?データフレームの選択のルールはありますか? – amarchin
@amarchinこの場合、複数のデータフレームは、2つのデータフレームと利用可能なすべてのデータフレームを意味します。インデックスは関数のパラメータでリストとして提供され、連続していますが、必ずしも1から始まらなくてもかまいません。 – Ruutsa
再現可能な例がないと簡単ではありません...とにかく最後のコマンドの「インデックスが範囲外です」エラーこれを行う必要があります: 'framesList < - dataFramesByYear [yearIndexes] $ data()' – amarchin