如何后随机subseting写数据R中的剩余的数据帧(How to write the remain

2019-10-21 06:48发布

我参加了一个随机样本从数据帧。 但我不知道如何让剩余的数据帧。

df <- data.frame(x=rep(1:3,each=2),y=6:1,z=letters[1:6])

#select 3 random rows
df[sample(nrow(df),3)]

我要的是与其他3行获得剩余的数据帧。

Answer 1:

sample集每次运行时随机种子,因此,如果要复制它的结果,你要么需要set.seed或保存其结果的变量。

解决你的问题,你只需要添加-你的索引之前,以获得数据集的其余部分。 另外,不要忘了后面添加一个逗号indx如果要选择行(不像你的问题)

set.seed(1)
indx <- sample(nrow(df), 3)

你的子集

df[indx, ] 
#   x y z
# 2 1 5 b
# 6 3 1 f
# 3 2 4 c

剩余的数据集

df[-indx, ]
#   x y z
# 1 1 6 a
# 4 2 3 d
# 5 3 2 e


Answer 2:

尝试:

> df
  x y z
1 1 6 a
2 1 5 b
3 2 4 c
4 2 3 d
5 3 2 e
6 3 1 f
> 
> df2 = df[sample(nrow(df),3),]
> df2
  x y z
5 3 2 e
3 2 4 c
1 1 6 a

> df[!rownames(df) %in% rownames(df2),]
  x y z
1 1 6 a
2 1 5 b
5 3 2 e


文章来源: How to write the remaining data frame in R after randomly subseting the data