私は自分自身をgrep()
の機能の限界で見つけました、あるいはこれを行う効率的な方法があります。大規模なデータセットを2つの属性でフィルタリングし、サブセットに分割する方法は? R/Grep
Date <- c("31-DEC-2014","31-DEC-2014","31-DEC-2014","30-DEC-2014",
"30-DEC-2014","30-DEC-2014", "29-DEC-2014","29-DEC-2014","29-DEC-2014")
ISIN <- c("LU0168343191", "TW0002418001", "GB00B3FFY088","LU0168343191",
"TW0002418001", "GB00B3FFY088","LU0168343191", "TW0002418001", "GB00B3FFY088")
price <-c(seq(1:9))
df <- as.data.frame(cbind(Date, ISIN, price))
および所望の結果は、以下の(Result_I
3つの個々の識別子のX3)
list()
ある:
サンプルデータフレームの始まり
考えられるのは、最初にデータをISINでフィルタリングし、からまでフィルタする必要があるということです。この2ステップのプロセスでは、データをそのまま維持する必要があります。
Result_d <- c("31-DEC-2014", "30-DEC-2014","29-DEC-2014")
Result_I <- c("LU0168343191","LU0168343191","LU0168343191")
Result_P <- c(1,4,7)
Result_df <- cbind(Result_d, Result_I, Result_P)
半ばに保管してくださいは、上記のデモを目的としており、実際のデータ・セットが適用にかかわらずがあるので、私は何かのためにlookignていますようResult_d
あたり450以上の異なる日の期間にわたって500万行と50列を持っていますnrowまたはNcoI部位の
何私がこれまで持っている:
Unique_Dates <- unique(df$Date)
:
私はすべてのユニークな日付と店舗を取ります
識別子のために同じ:今
Unique_ID <- unique(df$ISIN)
grepを問題:私はUnique_Dates
を含むすべての行を望んでいた場合
私のようなものだろう:
pattern <- paste(Unique_dates, collapse = "|")
result <- as.matrix(df[grep(pattern, df$Date),])
をして、これは基本的に取得します全データセット。誰かがこれを行う効率的な方法を知っているのだろうかと思います。
ありがとうございます。
'DF%>% dplyr ::フィルタ(grepl(パターン= "LU"、ISIN)) 'と日付と範囲については' lubridate' – Drey
を使用してそれ'df [!duplicated(df $ Date)、]'おそらく? – Jaap
あなたのコードはエラーを出力します。それはまた "LU"に限定されています。ここで私は約8000の固有IDを持っています。同じ日付に同じIDの複数のエントリがあるので、ユニークな日付フィルタが適用されていることが重要です –