相关疑难解决方法(0)

来自R数据帧子集的行的随机样本

有没有一种从数据帧的一部分获取行样本的好方法?

如果我只是有数据,如

gender <- c("F", "M", "M", "F", "F", "M", "F", "F")
age    <- c(23, 25, 27, 29, 31, 33, 35, 37)
Run Code Online (Sandbox Code Playgroud)

然后我可以轻松地抽取三个Fs的年龄

sample(age[gender == "F"], 3)
Run Code Online (Sandbox Code Playgroud)

得到类似的东西

[1] 31 35 29
Run Code Online (Sandbox Code Playgroud)

但是如果我将这些数据转换为数据帧

mydf <- data.frame(gender, age) 
Run Code Online (Sandbox Code Playgroud)

我不能用明显的

sample(mydf[mydf$gender == "F", ], 3)
Run Code Online (Sandbox Code Playgroud)

虽然我可以用一些荒谬的括号来编造一些令人费解的东西

mydf[sample((1:nrow(mydf))[mydf$gender == "F"], 3), ]
Run Code Online (Sandbox Code Playgroud)

得到我想要的东西

  gender age
7      F  35
4      F  29
1      F  23
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法让我花更少的时间来研究如何写?

r sample dataframe

12
推荐指数
2
解决办法
3万
查看次数

标签 统计

dataframe ×1

r ×1

sample ×1