子集或从R中的索引中排除某些元素?

时间:2015-10-21 12:34:34

标签: r dataframe

假设我有一个8000行的数据帧DF。我可以使用inds=1001:2000获取行1001:2000。有没有办法可以将指数1:1000和2001:8000结合起来?如果是,那么命令是什么?

我问,因为我试图使用KNN对数据集进行交叉验证,为了运行knn.predicthttp://www.inside-r.org/packages/cran/knnflex/docs/knn.predict),我需要存储训练和测试集索引。

3 个答案:

答案 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), ]