0
私はmem_ord(74個の変数の1561464ods)を持っています。 SITE_JOIN_DATEは日付タイプであり、SITE_JOIN_DATEは条件に従ってユーザータイプを分割しようとしています。しかし、結果を見るには遅すぎました。 if条件が遅すぎます。どうすればスピードを上げることができますか?私はまた、複数のコアを使用することができます。rのデータテーブルの文を高速化
mem_ord_by_user <- mem_ord[, list(
AF_SITE_JOIN_DT = Sys.Date() - SITE_JOIN_DATE,
DAY_PAY_CNT = .N,
DAY_TOT_PRICE = .SD[, sum(TOT_PAY_PRICE)],
USER_TYPE = .SD[
,if(SITE_JOIN_DATE > '2017-07-17' && SITE_JOIN_DATE < '2017-08-05' && !is.na(SITE_JOIN_DATE)){
'event_joiner'
}else if((SITE_JOIN_DATE <= '2017-07-17' || SITE_JOIN_DATE >= '2017-08-05') && !is.na(SITE_JOIN_DATE)){
'no_event_joiner'
}else{
'null_user'
}]
),
by=list(ORD_DT, CUSTOMER_NUM),
.SDcols = c('TOT_PAY_PRICE', 'SITE_JOIN_DATE')]
mem_ordのキー値は setkeyv(mem_ord、C( 'ORD_DT'、 'CUSTOMER_NUM'))です。 これも変更できます。 –
サンプルデータを提供できますか? – minem
'if()... else if()'の代わりに 'ifelse()'ネストした構造を使用した場合、速度を速くすることはできますか? – LAP