1

我使用以下方法从另一个数据帧中采样了一个数据帧:

sample_df <- mydf[sample(nrow(mydf), 10), ]

如何获得未采样的部分mydf

谢谢!

4

2 回答 2

2

Ben 的建议是我要走的路,但是如果对任何一个都没有任何更改data.frame,那么您应该能够通过rownameseach获得备用子集data.frame

 mydf[!rownames(mydf) %in% rownames(sample_df), ]

简单演示:

set.seed(1)
mydf <- data.frame(ID = 1:10, v1 = letters[1:10])
sample_df <- mydf[sample(nrow(mydf), 5), ]
sample_df
#   ID v1
# 3  3  c
# 4  4  d
# 5  5  e
# 7  7  g
# 2  2  b
mydf[!rownames(mydf) %in% rownames(sample_df), ]
#    ID v1
# 1   1  a
# 6   6  f
# 8   8  h
# 9   9  i
# 10 10  j
于 2013-06-05T02:11:08.507 回答
2

您可能应该保存样本的值,然后您可以像在向量中一样使用负索引:

sample_df <- mydf[s <- sample(nrow(mydf),10),]
remainder_df <- mydf[-s,]

或者更容易理解

s <- sample(nrow(mydf),10)
sample_df <- mydf[s,]
remainder_df <- mydf[-s,]
于 2013-06-05T02:01:38.040 回答