繁体   English   中英

随机子集数据后如何在R中写入剩余数据帧

[英]How to write the remaining data frame in R after randomly subseting the data

我从数据帧中抽取了一个随机样本。 但是我不知道如何获取剩余的数据帧。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM