使用来自 dplyr 的样本创建一组数据帧
Create set of data frames using sample from dplyr
以下可重现的示例将给我一个 mtcars 数据集,但其中变量 mpg 的值在每个气缸组内随机混洗,使用 dplyr 的 sample()
函数。
mtcars %>% group_by(cyl) %>%
mutate(mpg = mpg[sample(row_number())]) %>%
as.data.frame()
我的问题很简单。我想创建一个包含 n 个这些随机数据帧的列表。当然,这很容易通过循环完成,但我认为不使用循环也很简单。如何做到这一点?
您可以创建一个函数来打乱数据
library(dplyr)
shuffle_data <- function(data) {
data %>% group_by(cyl) %>% mutate(mpg = mpg[sample(row_number())])
}
并使用 replicate
创建长度为 n
的列表。
n <- 10
my_list <- replicate(n, shuffle_data(mtcars), simplify = FALSE)
以下可重现的示例将给我一个 mtcars 数据集,但其中变量 mpg 的值在每个气缸组内随机混洗,使用 dplyr 的 sample()
函数。
mtcars %>% group_by(cyl) %>%
mutate(mpg = mpg[sample(row_number())]) %>%
as.data.frame()
我的问题很简单。我想创建一个包含 n 个这些随机数据帧的列表。当然,这很容易通过循环完成,但我认为不使用循环也很简单。如何做到这一点?
您可以创建一个函数来打乱数据
library(dplyr)
shuffle_data <- function(data) {
data %>% group_by(cyl) %>% mutate(mpg = mpg[sample(row_number())])
}
并使用 replicate
创建长度为 n
的列表。
n <- 10
my_list <- replicate(n, shuffle_data(mtcars), simplify = FALSE)