R 从一列数据中随机删除20个连续的数据值,该列共有约180个值

R 从一列数据中随机删除20个连续的数据值,该列共有约180个值,r,R,我有一列数据,它们在行中出现的顺序很重要,这表示出现的顺序。我想做的是随机删除df$col中的20个连续值 我知道如何从列中随机删除20个数据值: flow.df %>% sample_frac(0.8) 但我不知道如何随机删除20个连续值 Amy help非常感谢您的帮助。这是一个有点冗长的函数,可以写得更短更快: remove_random_n <- function(df, n = 20) { rows <- nrow(df) upper_bound <-

我有一列数据,它们在行中出现的顺序很重要,这表示出现的顺序。我想做的是随机删除df$col中的20个连续值

我知道如何从列中随机删除20个数据值:

flow.df %>% sample_frac(0.8)
但我不知道如何随机删除20个连续值


Amy help非常感谢您的帮助。

这是一个有点冗长的函数,可以写得更短更快:

remove_random_n <- function(df, n = 20) {
  rows <- nrow(df)
  upper_bound <- rows - n
  removal_start <- floor(runif(1, 1, upper_bound))
  removal_indices <- seq(removal_start, removal_start + n - 1)
  df[-removal_indices, ]
}

remove\u random\n对不起,我完全误解了你的问题。您可以尝试以下操作:

i = sample(1:(nrow(df)-19),1)
df[-(i:(i+19)),]

这里只取一个索引,然后删除它和下面的20个索引。我删除了选择索引>160的可能性,因为您将无法选择以下20个。您可以根据需要进行调整。

嗨,巴勃罗,谢谢您的代码,这对您真的很有帮助。是否有办法随机“删除”df中的20个连续数据点,但将其替换为NA,以保持df中的值顺序?
df[-c(seq(sample(nrow(df) - 19, 1), length.out = 20)), ]