如何在R中随机划分数据集

我有一个连续50天左右的数据集。我想将其分为训练和测试数据集,这样一周中的每5天都在训练集中,而一周中的2天都在测试集中。

应随机选择测试集的2天。并非总是如此选择第2天。

我该怎么办?

R中对此有任何功能吗?目前,这就是我将数据划分为训练和测试集的方式,但是这样做可能是因为测试和训练的数据时间非常接近,因此总是会产生非常高的MSR值。

set.seed(100)

train <- sample(nrow(dataset1),0.7 * nrow(dataset1),replace = FALSE)
TrainSet <- dataset1[train,]
#scale (TrainSet,center = TRUE,scale = TRUE)
ValidSet <- dataset1[-train,]
#scale (ValidSet,scale = TRUE)
summary(TrainSet)
summary(ValidSet)

示例数据:

data
#            timestamp var1  var2  var3 var5
#1 2018-07-20 13:40:00   12  0.00 30.12   10
#2 2018-07-20 13:45:00   12  0.10 10.15   10
#3 2018-07-20 13:50:00    2 11.00 19.22   17
#4 2018-07-20 13:55:00   22  3.05 23.31    3

dput(data)
structure(list(timestamp = c("2018-07-20 13:50:00","2018-07-20 13:52:00","2018-07-20 13:54:00","2018-07-20 13:56:00"),var1 = c(12,12,2,22),var2 = c(0,0.1,11,3.05),var3 = c(30.12,10.15,19.22,23.31),var5 = c(10L,10L,17L,3L)),class = "data.frame",row.names = c(NA,-4L))
zhuji111 回答:如何在R中随机划分数据集

这是如何对诸如此类的数据进行分区的示例

set.seed(42)
days_of_the_week <- letters[1:7]

df <- data.frame(day = days_of_the_week,value = rnorm(105))

train_days <- sample(unique(df$day),2)
test_days <- setdiff(df$day,train_days)

test_data <- df[df$day %in% test_days,]
train_data <- df[df$day %in% train_days,]
本文链接:https://www.f2er.com/3116030.html

大家都在问