私は巨大なデータベースを持っています。いくつかの行が繰り返されます。私は "ユニーク()"機能を使うことができましたが、5分かかります。同じことをする方法(多分並列プログラミングの方法)がありますか?DataFrameから一意の要素を抽出する並列方法はありますか?
0
A
答えて
0
それが速くなる場合、私は知らないが、あなたのようdplyr
からdistinct
を使用することができます別のオプションは(もdplyr
から)group_by
を使用することです
df %>% distinct(x)
:
df %>% group_by(x)
0
data.table
パッケージを確認してください。ここではあなたが何ができるかです:
set.seed(1)
df <- data.frame(col1 = sample(x = 5000, size = 1e6, replace = TRUE),
col2 = sample(x = 5000, size = 1e6, replace = TRUE))
dt <- copy(df)
setDT(dt) #here you convert a data.frame object into a data.table one by reference
unique(dt)
我々はmicrobenchmark
パッケージを使用してタイムゲインを確認することができます。
microbenchmark(unique(df), unique(dt))
# Unit: milliseconds
# expr min lq mean median uq max neval
# unique(df) 1028.92260 1285.39321 1410.4072 1405.7486 1543.1486 1857.4901 100
# unique(dt) 83.11946 98.41596 148.0874 119.0889 155.0679 507.4944 100