R 将整数序列添加到具有大约500行的数据帧
我有一个506行的数据帧。我正在尝试用线性回归模型实现k倍交叉验证。这是我的网站的链接 我正在使用遗漏模型准备列车和测试数据帧。 我收到以下信息作为输入:R 将整数序列添加到具有大约500行的数据帧,r,split,dataframe,subset,R,Split,Dataframe,Subset,我有一个506行的数据帧。我正在尝试用线性回归模型实现k倍交叉验证。这是我的网站的链接 我正在使用遗漏模型准备列车和测试数据帧。 我收到以下信息作为输入: df - data frame with 506 records k - fold cross-validation (example: 10) 这是我为准备测试和训练数据帧所做的: df <- c(1:506) # This is just for representation purposes df <- cbind(id
df - data frame with 506 records
k - fold cross-validation (example: 10)
这是我为准备测试和训练数据帧所做的:
df <- c(1:506) # This is just for representation purposes
df <- cbind(idx, df)
for(ii in 1:k) {
train <- subset.data.frame(df, df[,1] == ii)
test <- subset.data.frame(df, df[,1] != ii)
# Further processing with train and test datasets
}
但是,我希望将数据帧分成k个相等的部分:
idx df
1 1 1
2 1 2
3 1 3
4 1 4
5 1 5
6 1 6
...
48 1 48
49 1 49
50 1 50
51 1 51
52 2 52
53 2 53
54 2 54
...
504 10 504
505 10 505
506 10 506
我对R比较陌生。因此,如果可能,请使用基本软件包,以便我了解我做错了什么?如果我理解正确,问题在于您的idx列。下面是如何创建一个包含数据的序列,这些数据不能完全放入存储桶中。你有506个观察结果,你正试图将其放入10个桶中。某些存储桶将包含比其他存储桶更多的数据
df <- 1:506
idx <-ceiling(seq_along(df)/(length(df)/10))
df <- cbind(idx, df)
更新
在data.frame中加载csv数据时:
这对df有效这有效吗?idx我已将URL添加到我的csv。希望有帮助!在运行CV时,我倾向于使用split创建一个索引,并使用该索引对数据进行子集划分。例如,…K
df <- 1:506
idx <-ceiling(seq_along(df)/(length(df)/10))
df <- cbind(idx, df)
k <-10
for(ii in 1:k) {
train <- subset(df, df[,1] == ii)
test <- subset(df, df[,1] != ii)
# Further processing with train and test datasets
}
df <-read.csv("C:/temp/house_with_missing.csv",stringsAsFactors = FALSE)
idx <-ceiling(seq_along(1:nrow(df))/(nrow(df)/10))
df <- cbind(idx, df)