2017-07-06 7 views
0

この(一部y = ...)が異常にゆっくり走る:dplyr :: select_ifスーパースロー

library(dplyr) 
n <- 10000 
p <- 1000 


x <- as.tbl(as.data.frame(matrix(rnorm(n * p), nc = p))) 
y = x %>% 
    select_if(., is.numeric) 

実際には、それは私のデータクリーニングコードの最も小さい部分の一つです。これを行うより良い方法はありますか?

(dplyr 0.7.1)

+0

'のX [sapply(X、is.numeric)]'おそらくに関連 – akrun

+0

より速くなければなりませんこの公開された問題](https://github.com/tidyverse/dplyr/issues/2813)をdplyr repoに送ってください。 –

答えて

2

これはより不格好であるにもかかわらず高速実行:[

x %>% select(which(lapply(x,class) == "numeric")) 
+0

wao。あなたのコードは私の(もっと大きなデータセットで)約1000倍高速です! – user189035