子集数据帧产生0行

时间:2015-01-22 20:45:35

标签: r

我正在使用7634x589的矩阵。我正在尝试将我的数据分组为两个列表:

  • 随机抽样5344行(70%的数据)和
  • 其余数据(2290行[数据的30%])

这就是我正在做的事情:

> dim(mydata)
[1] 7634  589
> trainingset <- mydata[sample(1:nrow(mydata), 5344),]
> dim(trainingset)
[1] 5344  589

在此之前,这一切看起来都很完美:

> testingset <- mydata[!trainingset]
> dim(testingset)
NULL

我正在尝试让测试集包含除训练集之外的所有内容。它的尺寸应为2290x589。显然我做错了什么。有人可以帮我搞清楚吗?我真的很感激帮助,伙计们。


在收到评论者的建议后,我遇到了这个问题:

> dim(mydata)
[1] 7634  589
> id <- sample(1:nrow(mydata), 5344)
> trainingset <- mydata[id, ]
> dim(trainingset)
[1] 5344  589
> testingset <- mydata[!id, ]
> dim(testingset)
[1]   0 589

无法弄清楚为什么mydata[!id, ]会返回0行。谢谢你的支持,我对此很陌生。 :(

2 个答案:

答案 0 :(得分:2)

好的,使用mydata[-id, ]代替mydata[!id, ]的建议奏效了。谢谢fellas!

答案 1 :(得分:0)

testingset只是一个向量。它没有dim。您可以使用

验证这一点
typeof(testingset)

向量的暗淡是NULL。