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

Lu *_* Yu 1 r subset sampling

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

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)]
Run Code Online (Sandbox Code Playgroud)

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

Dav*_*urg 5

sample每次运行时都设置一个随机种子,因此,如果要重现其结果,则需要set.seed将其结果保存或保存在变量中。

解决您的问题,您只需要-在索引之前添加即可获取其余数据集。另外,indx如果要选择行,请不要忘记在逗号后添加逗号(与问题不同)

set.seed(1)
indx <- sample(nrow(df), 3)
Run Code Online (Sandbox Code Playgroud)

您的子集

df[indx, ] 
#   x y z
# 2 1 5 b
# 6 3 1 f
# 3 2 4 c
Run Code Online (Sandbox Code Playgroud)

剩余数据集

df[-indx, ]
#   x y z
# 1 1 6 a
# 4 2 3 d
# 5 3 2 e
Run Code Online (Sandbox Code Playgroud)