2017-08-07 51 views
2

提取的參數集的獨特組合,考慮下面的僞數據組從整潔數據

library(plyr) 

dummy_model <- function(...){ 
    data.frame(x = rnorm(100), y = rnorm(100)) 
} 

params <- expand.grid(a=1:10, b=letters[1:4]) 

d <- mdply(params, dummy_model) 
str(d) 
# 'data.frame': 4000 obs. of 4 variables: 
# $ a: int 1 1 1 1 1 1 1 1 1 1 ... 
# $ b: chr "a" "a" "a" "a" ... 
# $ x: num 0.812 1.183 2.839 -0.928 -1.427 ... 
# $ y: num -0.796 0.137 0.976 1.118 0.4 ... 

鑑於數據d,我怎麼能回到原來的PARAMS?

我目前的策略是拆分數據並選擇第一行,但這並不覺得很優雅。

library(dplyr) 
d %>% group_by(a,b) %>% slice(1) %>% select(-x,-y) 
# # A tibble: 40 x 2 
# # Groups: a, b [40] 
# a  b 
# <int> <chr> 
# 1  1  a 
# 2  1  b 
# 3  1  c 
# 4  1  d 
# 5  2  a 
# 6  2  b 
# 7  2  c 
# 8  2  d 
# 9  3  a 
# 10  3  b 

有什麼建議嗎?

+0

庫(dplyr);不同(d [,C(1,2)])? –

回答

3

也許您在尋找dplyr::distinct()

d %>% distinct(a, b) 
+0

太好了,謝謝!我知道這個必須有一個動詞 – baptiste