私はRを使用して大きなcsvデータセットから情報を効率的に抽出する方法を研究してきました。多くの人がパッケージffを推奨しているようです。データセットの読み取りに成功しましたが、サブセット化しようとして問題が発生しています。
最大のデータセットには、650,000を超える行と1005の列が含まれています。すべての列に同じデータ型が含まれているわけではありません。データフレームとして表示すると、構造は次のようになります。
'data.frame': 5 obs. of 1005 variables:
$ SAMPLING_EVENT_ID : Factor w/ 5 levels "S6230404","S6252242",..: 2 1 3 4 5
$ LATITUDE : num 24.4 24.5 24.5 24.5 24.5
$ LONGITUDE : num -81.9 -81.9 -82 -82 -82
$ YEAR : int 2010 2010 2010 2010 2010
$ MONTH : int 4 3 10 10 10
$ DAY : int 97 88 299 298 300
$ TIME : num 9 10 10 11.58 9.58
$ COUNTRY : Factor w/ 1 level "United_States": 1 1 1 1 1
$ STATE_PROVINCE : Factor w/ 1 level "Florida": 1 1 1 1 1
$ COUNT_TYPE : Factor w/ 2 levels "P21","P22": 2 2 1 1 1
$ EFFORT_HRS : num 6 2 7 6 3.5
$ EFFORT_DISTANCE_KM : num 48.28 8.05 0 0 0
$ EFFORT_AREA_HA : int 0 0 0 0 0
$ OBSERVER_ID : Factor w/ 3 levels "obs132426","obs58643",..: 3 2 1 1 1
$ NUMBER_OBSERVERS : Factor w/ 2 levels "?","1": 2 1 2 2 2
$ Zenaida_macroura : int 0 0 1 0 0
他のすべての変数は、この最後の変数、つまりさまざまな種類の鳥に類似しています。
これが私が「成功した:csvを読む:」に使用したコードです。
B2010 <- read.table.ffdf (x = NULL, “filePath&Name", nrows = -1, first.rows = 50000, next.rows = 50000)
ffdf出力について学習しようとして、dim(B2010)、str(B2010)、ls(B2010)などのコマンドラインを入力しました。dim(B2010)は適切な行数になりましたが、列は1つだけでした(レコードごとの文字列)。値をコンマで区切って)、ls(B2010)は、通常の変数リストの代わりに「[1] "physical""row.names""virtual"を出力しました。
STATE_PROVINCE ==“ California”と言うように抽出できるように、このタイプの出力を処理する方法がわかりませんか?変数が何であるかをB2010に伝えるにはどうすればよいですか?私はこれを別の見方をする必要があると思いますが、それを理解するためにあなたの助けが必要です。
私の最終的な目標は、一連のcsvデータセットをサブセット化し(1年に1つあるため)、さまざまな分析のために結果をデータフレームとして元に戻すことです。
ありがとう、ジョー