从原始数据框中删除样本行

时间:2016-09-27 18:23:09

标签: r

我使用的数据集中缺少值,因此我必须使用Amelia包进行插补,结果数据集的格式如下:

Bi.Rads     Age        Shape      Margin      Density     Severity
5.000000     70.00000 3.4685058  5.00000000 3.000000        1
5.000000     70.00000 4.0000000  3.00000000 3.000000        1
5.000000     70.00000 4.0000000  4.00000000 3.000000        1
5.000000     70.00000 4.0000000  5.00000000 3.000000        1
5.000000     70.00000 4.2881664  4.00000000 3.689292        1
5.000000     70.27765 4.0000000  4.00000000 3.000000        1  

十进制值是推算值。现在将这个数据集视为数据帧df,我从df中随机抽样100行,无需替换

df1<-df[sample(nrow(df),100),]

现在,我想从df中删除df1,我已尝试过类似帖子的每个建议,例如使用%in%,使用的dplyr包不返回861行。我试图评论其他帖子,但我不能,因为我没有足够的声誉。你能帮帮我吗?到目前为止,使用包sqldf,compare的技术都没有。

2 个答案:

答案 0 :(得分:0)

试试这个:

indices <- sample(1:nrow(df), 100)
df <- df[-indices,]

答案 1 :(得分:-1)

接下来,在对单个数据框进行子集化时,以下内容类似于!%in%,但此处用于保留或删除行。

library(dplyr)

Desired_data<-anti_join(df, df1)

来源:

Find complement of a data frame (anti - join)