创建数据集的两个列表之间的差异

时间:2018-01-26 14:39:30

标签: r

我有一个数据集,就像这个mushrooms <- read.csv("mushrooms.csv")一样,现在我的mushrooms.training_set已经是整个数据集的1/3。对于这两个变量,typeof()都会返回list

现在,我想选择原始数据集mushrooms中不属于mushrooms.training_set的行。我该怎么做?我尝试过以下方法:

  • mushrooms[c(!mushrooms.training_set),]但这会返回大约64K行的内容。
  • mushrooms[!mushrooms.training_set,]
  • mushrooms[!duplicated(mushrooms.training_set)]

谁帮助我?

1 个答案:

答案 0 :(得分:3)

您可以使用dplyr::setdiff

从问题所在位置开始
library(dplyr)
mushroooms.test = setdiff(mushrooms, mushrooms.training_set)

但大多数情况下,在训练集的同时使用它更容易创建测试集。这里有很多例子How to split data into training and test sets?