2016-09-27 158 views
-1

该数据集,我使用已缺失在他们值中删除的样本的行,所以必须使用无肢包插补,所得到的数据集是以下形式的:从原始数据帧

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,我已经试过像使用%相近岗位每一个建议在%中,使用了不返回861行的dplyr包。我试图评论其他职位,但我不能,因为我没有足够的声誉。你能帮我解决吗?没有像使用软件包sqldf的技术,比较迄今为止工作。

+0

考虑保存有你想为DF1行数的向量,然后创建DF2这是所有,但这些在向量。 '保持< - sample(nrow(df),100)'然后'df1 < - df [keep,]'和'df2 < - df [-keep,]' – mdgbeck

+0

哦,这绝对是一个重复的问题。 – InfiniteFlashChess

+0

@ AOK3000我正在使用R工作室,我试过了你的建议,它在环境窗口中显示861个观察值,但是当我打印它时,它会打印所有961个观察值。不知道它是否正确。 – Varun

回答

-1

试试这个:

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

我想你的建议和得到这个error'random <-mammo [样品(1:nrow(乳房专用),100),] 乳房专用<-mammo [-random,] 错误XJ [I]:无效标type'list'' – Varun

+0

random <-sample(1:nrow(mammo),100); mammo <-mammo [-random,] –

+0

是啊,这也是,并试图打印mammo,它打印所有961他们,但显示观察次数为861. – Varun

-1

在这里你去,下面的子集划分一个数据帧时,类似于!%in%,但在这里它是用来保留或删除行。

library(dplyr) 

Desired_data<-anti_join(df, df1) 

来源:

Find complement of a data frame (anti - join)

+0

由于我的估算数据集是十进制的,因此在这里不起作用。 – Varun

+0

我不知道为什么这很重要,但看看其他的选择。 – InfiniteFlashChess

+0

我这样说,是因为我在另一个没有小数值的数据集上尝试了sqldf,并且它的工作正常。 – Varun