首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何确定一列中的日期是否唯一?

如何确定一列中的日期是否唯一?
EN

Stack Overflow用户
提问于 2020-04-07 21:02:26
回答 4查看 71关注 0票数 5

我有一个简单的问题要问。我在这个问题上找不到解决方案。

我有一个日期的列向量,我想看看月份是否是唯一的。我试着使用unique,但可能用错了地方。

举个例子:

代码语言:javascript
运行
复制
Date = structure(c(11690, 11725, 11753, 11781, 11809, 11844, 11872, 
11900, 11942, 11970, 11998, 12026, 12061, 12089, 12117, 12145, 
12180, 12208, 12243, 12264, 12265, 12299, 12327, 12362, 12390, 
12425, 12453, 12481, 12509, 12544, 12572, 12600, 12635, 12663, 
12698, 12726, 12754, 12796, 12817, 12845, 12880, 12907, 12936, 
12971, 12999, 13027, 13062, 13090, 13118, 13160, 13181, 13209, 
13244, 13272, 13307, 13335, 13363, 13392, 13426, 13454, 13489, 
13524, 13552, 13580, 13615, 13643, 13670, 13699, 13727, 13762, 
13790, 13825, 13853, 13888, 13916, 13944, 13979, 14007, 14035, 
14063, 14098, 14126, 14154, 14160, 14189, 14217, 14259, 14280, 
14308, 14336, 14371, 14399, 14427, 14462, 14490, 14525, 14553, 
14581, 14623, 14644, 14672, 14707, 14735, 14770, 14798, 14826, 
14854, 14889, 14917, 14945, 14987, 15008, 15036, 15071, 15099, 
15134, 15162, 15190, 15225, 15253, 15281, 15316, 15351, 15379, 
15407, 15434, 15463, 15497, 15526, 15554, 15589, 15617, 15652, 
15680, 15715, 15743, 15771, 15799, 15827, 15862, 15890, 15918, 
15953, 15980, 16016, 16044, 16079, 16107, 16135, 16163, 16198, 
16226, 16254, 16289, 16317, 16345, 16380, 16408, 16457, 16467, 
16499, 16540, 16556, 16589, 16632, 16648, 16681, 16730, 16740, 
16772, 16821, 16832, 16870, 16912, 16922, 16954, 17003, 17014, 
17052, 17094, 17106, 17143, 17185, 17198, 17234, 17283, 17287, 
17325, 17367, 17379, 17416, 17465, 17471, 17514, 17556, 17563, 
17598, 17647, 17652, 17696, 17738, 17744, 17787, 17829, 17836, 
17878, 17920, 17928, 17962, 17996, 18017, 18053, 18102, 18109, 
18151, 18193, 18201, 18242), class = "Date")

在这个列向量中,我想看看在同一个月是否有两个观察值( "2003-07“和”2008-10“有两个观察值)。我能用一行命令检查一下吗?

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-04-07 21:14:58

一行包含来自zooas.yearmon

代码语言:javascript
运行
复制
library(zoo)
Date[which(duplicated(as.yearmon(Date))==TRUE)]
[1] "2003-07-31" "2008-10-08"
票数 3
EN

Stack Overflow用户

发布于 2020-04-07 21:08:39

在基数R中,我们可以format Date来仅获取年份和月份,使用table来计算它们的出现次数,使用Filter来选择那些出现多次的月份和年份。

代码语言:javascript
运行
复制
names(Filter(function(x) x > 1, table(format(Date, "%Y-%m"))))
#[1] "2003-07" "2008-10"

使用zoo::as.yearmon的相同逻辑。

代码语言:javascript
运行
复制
names(Filter(function(x) x > 1, table(zoo::as.yearmon(Date))))
#[1] "Jul 2003" "Oct 2008"
票数 5
EN

Stack Overflow用户

发布于 2020-04-07 21:08:10

代码语言:javascript
运行
复制
library('lubridate')
library('tidyverse')
Date %>% 
  enframe() %>% 
  count(year(value), month(value)) %>% 
  filter(n > 1)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61080656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档