我for下面的回圈使用元素 intime_to_remove隨機洗掉它們 a study。time要洗掉的可用元素是:2, 3, 4。
但是問題不大。time元素有順序。所以,在sample()洗掉之后,我們不能以:time = 0,1,3或time = 0,1,2,4等結尾。我們應該只以: time = 0,1、time = 0,1,2、time=0,1,2,3或結尾time=0,1,2,3,4。
我想知道是否可以將這樣的條件添加到我下面的當前代碼中?
library(tidyverse)
data <- expand_grid(study=1:4,group=1:2, time=0:4)
n = 1
time_to_remove <- unique(data$time)[-(1:2)]
unique_study <- unique(data$study)
for(i in time_to_remove) {
studies_to_remove = sample(unique_study, size = n)
time_to_remove = i
unique_study <- setdiff(unique_study, studies_to_remove)
data <- data %>%
filter(
!( study %in% studies_to_remove &
time %in% time_to_remove ))
}
data %>% as.data.frame()
uj5u.com熱心網友回復:
我知道這不是答案。但是提問者想知道如果他嘗試使用我的評論,代碼會是什么樣子:
for(i in time_to_remove) {
studies_to_remove = sample(unique_study, size = n)
# time_to_remove = i
unique_study <- setdiff(unique_study, studies_to_remove)
data <- data %>%
filter(
!( study %in% studies_to_remove &
time > i ))
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/336891.html
