r - 如何使用top_n进行条件提取
问题描述
因此,我的 df 中有一个包含“是”或“否”的列(类别),为了创建更平衡的样本,我想选择前 500 个“是”案例和前 500 个案例的行我的数据集中的“否”。
我试过这段代码:
top_n(df,500, category=="Yes")
但是这个选择所有的情况是的而不是只有前500个我也试过这个但是这给了我一个错误虽然我确信这没有意义
df %>% filter(top_n(500, category == "Yes") & top_n(500, category=="No"))
我需要一些正确方向的帮助
解决方案
如果您想随机选择是/否答案,您可以使用以下代码:
#// generate toy data
df <- data.frame(YN = rep(c("yes", "no"),10), val = runif(20, 1, 100))
head(df)
#> YN val
#> 1 yes 26.00628
#> 2 no 98.34237
#> 3 yes 68.05788
#> 4 no 21.87011
#> 5 yes 33.92545
#> 6 no 68.74417
#// set random seed for reproducibility
set.seed(123)
#// randomly sample 5 'yes' answers
yes <- df[sample(which(df$YN == "yes"), 5),]
#// randomly sample 5 'no' answers
no <- df[sample(which(df$YN == "no"), 5),]
#// create new dataframe with sampled answers
df_sub <- rbind(yes, no)
df_sub
#> YN val
#> 5 yes 33.925453
#> 19 yes 53.548253
#> 3 yes 68.057878
#> 15 yes 51.029700
#> 11 yes 91.768337
#> 10 no 11.923457
#> 8 no 8.467184
#> 12 no 63.233610
#> 16 no 93.375332
#> 2 no 98.342369
由reprex 包(v0.3.0)于 2021-01-07 创建
推荐阅读
- binary - 从 22 字节十六进制解码纬度和经度
- excel - 运行时错误“1004”:应用程序定义或对象定义错误 - 按日期过滤数据透视表对
- mysql - "join" 在这个位置无效,期待 EOF ,";"
- apache-spark - 如何对大型特征集进行主成分分析?
- python - NGROK 与 Python 和树莓派
- postfix-mta - 客户端主机被拒绝:找不到您的反向主机名
- web - 用于将用户发送到外部链接的网站队列按钮
- reactjs - 如何在 Antd-Calendar 中显示假期?
- python - 如何在 np.einsum 中执行此 np.tensordot 操作
- swift - 工具栏垫片在 3 面板设计中不起作用