r - 如何在R中获取具有特殊条件的随机行
问题描述
您好,我怎样才能获得 2 个具有特殊条件的随机行。下面的示例是日期,我想获得 2 个日期的随机样本,其中任何年份但月份和日期为 12/31。所以它就像“XXXX1231”。
> dateDS
dateDS
1 20121231
2 20131020
3 20140819
4 20151231
5 20161231
6 20171106
7 20131231
我想得到一个随机样本,它会输出 2 个日期(“XXXX1231”)
> dateSample
dateSample
1 20121231
2 20131231
解决方案
一种方法是使用grep
查找以“1231”结尾的日期索引,然后对它们进行子集化。
df[sample(grep("1231$", df$dateDS), 2), ,drop = FALSE]
# dateDS
#5 20161231
#4 20151231
或者,如果您只想要这些日期的值并且不想子集化
sample(grep("1231$", df$dateDS, value = TRUE), 2)
#[1] "20151231" "20161231"
另一种选择,将dateDS
提取月份和日期转换为实际日期并随机选择两个带有“1231”的值。
df$dateDS[sample(which(format(as.Date(as.character(df$dateDS), "%Y%m%d"), "%m%d") == "1231"), 2)]
推荐阅读
- python - 单词中的数字名称 // python 1 - 999
- nginx - 实现类似nginx的azure应用网关反向代理能力
- python - 获取唯一值并转换为字符串
- sql - SQL 数据清洗
- python - 如何在 Pygame 中保持纵横比的同时缩放图像?
- javascript - jquery从日期列表中获取最大日期并插入单元格
- apache-spark - Spark 从字符串中提取值并分配为列
- java - 使用数组而不使用递归技术的斐波那契数列
- java - 使用 CXF 转换功能修改传入的 Web 服务响应
- php - 为什么 Wordpress 不上传我的文件?$_FILE 始终为空