考虑以下虚拟数据集
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
,我怎样才能找回原始参数?
我目前的策略是分割数据并选择第一行,但这并不是很优雅。
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 :(得分:3)
也许您正在寻找dplyr::distinct()
?
d %>% distinct(a, b)