我参加了一个随机样本从数据帧。 但我不知道如何让剩余的数据帧。
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行获得剩余的数据帧。
我参加了一个随机样本从数据帧。 但我不知道如何让剩余的数据帧。
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行获得剩余的数据帧。
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
尝试:
> 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