假设我有一个8000行的数据帧DF。我可以使用inds=1001:2000
获取行1001:2000。有没有办法可以将指数1:1000和2001:8000结合起来?如果是,那么命令是什么?
我问,因为我试图使用KNN对数据集进行交叉验证,为了运行knn.predict
(http://www.inside-r.org/packages/cran/knnflex/docs/knn.predict),我需要存储训练和测试集索引。
答案 0 :(得分:2)
刚刚对行进行调整?
rbind(df[1:1001,],df[2001:8000,])
答案 1 :(得分:1)
如果您正在进行交叉验证,您是否想要随机选择测试和培训数据?
您关联的网页就是一个很好的例子
# 5-fold cross-validation to select k for above example
fold <- sample(1:5,75,replace=TRUE)
cvpred <- matrix(NA,nrow=75,ncol=10)
for (k in 1:10)
for (i in 1:5)
cvpred[which(fold==i),k] <- knn.predict(train=which(fold!=i),test=which(fold==i),cl,kdist,k=k)
# display misclassification rates for k=1:10
apply(cvpred,2,function(x) sum(cl!=x))
如果您只是想要索引,那么您可以执行以下操作:
inds = c(1:1001,2001:8000)
答案 2 :(得分:0)
试试这个,
df[c(1:1000, 2001:8000), ]