Вы можете написать функцию, которая принимает фрейм данных в качестве входных данных и n
, т.е. количество Popnum
для удаления.
remove_n_Popnum <- function(data, n) {
subset(data, !Popnum %in% sample(unique(Popnum), n))
}
Чтобы получить один popnum
, вы можете:
remove_n_Popnum(df, 1)
# Individual Population Popnum
#1 ALM16-014 AimeesMdw 1
#2 ALM16-024 AimeesMdw 1
#3 ALM16-026 AimeesMdw 1
#4 ALM16-003 AMKRanch 2
#5 ALM16-022 AMKRanch 2
Чтобы сделать это 100 раз, вы можете использовать replicate
list_data <- replicate(100, remove_n_Popnum(df1, 1), simplify = FALSE)
Чтобы передать другую n
в remove_n_Popnum
функцию, вы можете использовать lapply
nested_list_data <- lapply(seq_along(unique(df$Popnum)[-1]),
function(x) replicate(100, remove_n_Popnum(df, x), simplify = FALSE))
, где seq_along
генерирует последовательность, которая на 1 меньше количества уникальных значений.
seq_along(unique(df$Popnum)[-1])
#[1] 1 2