我使用以下方法从另一个数据帧中采样了一个数据帧:
sample_df <- mydf[sample(nrow(mydf), 10), ]
如何获得未采样的部分mydf
?
谢谢!
Ben 的建议是我要走的路,但是如果对任何一个都没有任何更改data.frame
,那么您应该能够通过rownames
each获得备用子集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
您可能应该保存样本的值,然后您可以像在向量中一样使用负索引:
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,]