主頁 > .NET開發 > 如何將我的串列子集為只有一個月的最后一天?

如何將我的串列子集為只有一個月的最后一天?

2022-03-01 04:05:33 .NET開發

          DGS1MO DGS3MO DGS1 DGS2 DGS3 DGS5 DGS7 DGS10 DGS20 DGS30
2001-07-31   3.67   3.54 3.53 3.79 4.06 4.57 4.86  5.07  5.61  5.51
2001-08-01   3.65   3.53 3.56 3.83 4.09 4.62 4.90  5.11  5.63  5.53
2001-08-02   3.65   3.53 3.57 3.89 4.17 4.69 4.97  5.17  5.68  5.57
2001-08-03   3.63   3.52 3.57 3.91 4.22 4.72 4.99  5.20  5.70  5.59
2001-08-06   3.62   3.52 3.56 3.88 4.17 4.71 4.99  5.19  5.70  5.59
2001-08-07   3.63   3.52 3.56 3.90 4.19 4.72 5.00  5.20  5.71  5.60
2001-08-08   3.61   3.49 3.46 3.77 4.05 4.61 4.87  4.99  5.61  5.52
2001-08-09   3.61   3.45 3.48 3.77 4.07 4.66 4.93  5.04  5.64  5.54
2001-08-10   3.58   3.43 3.45 3.73 4.03 4.61 4.88  4.99  5.61  5.52
2001-08-13   3.57   3.45 3.43 3.70 4.00 4.57 4.86  4.97  5.60  5.52
2001-08-14   3.54   3.43 3.46 3.74 4.03 4.59 4.87  4.97  5.61  5.51
2001-08-15   3.52   3.43 3.47 3.80 4.11 4.62 4.90  5.00  5.62  5.52
2001-08-16   3.48   3.39 3.43 3.75 4.04 4.58 4.84  4.95  5.58  5.48
2001-08-17   3.46   3.36 3.39 3.67 3.95 4.49 4.75  4.84  5.51  5.43
2001-08-20   3.48   3.42 3.44 3.74 4.02 4.55 4.81  4.91  5.55  5.46
2001-08-21   3.46   3.39 3.41 3.69 3.96 4.50 4.79  4.87  5.54  5.44
2001-08-22   3.46   3.38 3.44 3.76 4.03 4.53 4.81  4.91  5.53  5.44
2001-08-23   3.49   3.40 3.46 3.72 3.99 4.52 4.79  4.89  5.50  5.41
2001-08-24   3.49   3.42 3.48 3.76 4.03 4.55 4.82  4.93  5.54  5.45
2001-08-27   3.52   3.45 3.51 3.78 4.04 4.57 4.83  4.94  5.56  5.47
2001-08-28   3.53   3.41 3.46 3.71 3.97 4.48 4.73  4.85  5.49  5.41
2001-08-29   3.48   3.42 3.44 3.67 3.92 4.43 4.67  4.78  5.44  5.36
2001-08-30   3.41   3.36 3.38 3.61 3.88 4.42 4.68  4.79  5.45  5.37
2001-08-31   3.40   3.37 3.41 3.64 3.91 4.46 4.72  4.85  5.47  5.39
2001-09-04   3.43   3.44 3.55 3.83 4.10 4.63 4.88  4.99  5.59  5.50
2001-09-05   3.49   3.41 3.47 3.79 4.07 4.61 4.86  4.97  5.57  5.48
2001-09-06   3.44   3.34 3.40 3.65 3.93 4.48 4.73  4.86  5.50  5.41
2001-09-07   3.40   3.27 3.29 3.53 3.82 4.39 4.67  4.80  5.45  5.39
2001-09-10   3.40   3.26 3.31 3.53 3.82 4.41 4.69  4.84  5.50  5.43
2001-09-13   2.73   2.74 2.81 2.99 3.32 4.03 4.41  4.64  5.41  5.39
2001-09-14   2.54   2.64 2.73 2.87 3.17 3.92 4.31  4.57  5.38  5.35
2001-09-17   2.47   2.59 2.72 2.96 3.30 3.99 4.38  4.63  5.44  5.41
2001-09-18   2.34   2.48 2.69 2.96 3.31 4.01 4.46  4.72  5.59  5.55
2001-09-19   2.00   2.19 2.49 2.81 3.18 3.90 4.41  4.69  5.59  5.56
2001-09-20   2.04   2.22 2.56 2.91 3.27 3.97 4.47  4.75  5.67  5.62
2001-09-21   2.12   2.25 2.53 2.91 3.27 3.94 4.43  4.70  5.62  5.59
2001-09-24   2.38   2.38 2.56 2.94 3.30 4.00 4.47  4.73  5.61  5.58
2001-09-25   2.58   2.40 2.51 2.88 3.25 3.97 4.45  4.72  5.60  5.58
2001-09-26   2.51   2.38 2.48 2.82 3.18 3.91 4.39  4.65  5.52  5.50
2001-09-27   2.34   2.38 2.43 2.78 3.15 3.87 4.33  4.58  5.46  5.45
2001-09-28   2.28   2.40 2.49 2.86 3.22 3.93 4.37  4.60  5.45  5.42
2001-10-01   2.26   2.37 2.47 2.82 3.18 3.90 4.33  4.55  5.39  5.38
2001-10-02   2.27   2.26 2.43 2.77 3.14 3.87 4.31  4.53  5.36  5.34
2001-10-03   2.21   2.23 2.38 2.77 3.14 3.86 4.29  4.50  5.34  5.32
2001-10-04   2.22   2.21 2.37 2.75 3.14 3.88 4.29  4.53  5.33  5.31
2001-10-05   2.21   2.19 2.33 2.71 3.10 3.87 4.26  4.52  5.34  5.31
2001-10-09   2.24   2.22 2.35 2.74 3.16 3.96 4.35  4.62  5.42  5.39

上面我有我想要子集的資料集。我的目標是將 df 子集化為僅包括列出的每個月的最后一天。例如 2021 年 8 月 31 日、2021 年 9 月 27 日……等通過資料。我已經能夠完成特定的日期,但我需要一些動態的東西。提前致謝

uj5u.com熱心網友回復:

lubridate

library(lubridate)
df$DAY <- as.Date(df$DAY)
df[df$DAY == ceiling_date(df$DAY,'month') - days(1),]

          DAY DGS1MO DGS3MO DGS1 DGS2 DGS3 DGS5 DGS7 DGS10 DGS20 DGS30
1  2001-07-31   3.67   3.54 3.53 3.79 4.06 4.57 4.86  5.07  5.61  5.51
24 2001-08-31   3.40   3.37 3.41 3.64 3.91 4.46 4.72  4.85  5.47  5.39

df

df <- read.table(text='
DAY     DGS1MO DGS3MO DGS1 DGS2 DGS3 DGS5 DGS7 DGS10 DGS20 DGS30
2001-07-31   3.67   3.54 3.53 3.79 4.06 4.57 4.86  5.07  5.61  5.51
2001-08-01   3.65   3.53 3.56 3.83 4.09 4.62 4.90  5.11  5.63  5.53
2001-08-02   3.65   3.53 3.57 3.89 4.17 4.69 4.97  5.17  5.68  5.57
2001-08-03   3.63   3.52 3.57 3.91 4.22 4.72 4.99  5.20  5.70  5.59
2001-08-06   3.62   3.52 3.56 3.88 4.17 4.71 4.99  5.19  5.70  5.59
2001-08-07   3.63   3.52 3.56 3.90 4.19 4.72 5.00  5.20  5.71  5.60
2001-08-08   3.61   3.49 3.46 3.77 4.05 4.61 4.87  4.99  5.61  5.52
2001-08-09   3.61   3.45 3.48 3.77 4.07 4.66 4.93  5.04  5.64  5.54
2001-08-10   3.58   3.43 3.45 3.73 4.03 4.61 4.88  4.99  5.61  5.52
2001-08-13   3.57   3.45 3.43 3.70 4.00 4.57 4.86  4.97  5.60  5.52
2001-08-14   3.54   3.43 3.46 3.74 4.03 4.59 4.87  4.97  5.61  5.51
2001-08-15   3.52   3.43 3.47 3.80 4.11 4.62 4.90  5.00  5.62  5.52
2001-08-16   3.48   3.39 3.43 3.75 4.04 4.58 4.84  4.95  5.58  5.48
2001-08-17   3.46   3.36 3.39 3.67 3.95 4.49 4.75  4.84  5.51  5.43
2001-08-20   3.48   3.42 3.44 3.74 4.02 4.55 4.81  4.91  5.55  5.46
2001-08-21   3.46   3.39 3.41 3.69 3.96 4.50 4.79  4.87  5.54  5.44
2001-08-22   3.46   3.38 3.44 3.76 4.03 4.53 4.81  4.91  5.53  5.44
2001-08-23   3.49   3.40 3.46 3.72 3.99 4.52 4.79  4.89  5.50  5.41
2001-08-24   3.49   3.42 3.48 3.76 4.03 4.55 4.82  4.93  5.54  5.45
2001-08-27   3.52   3.45 3.51 3.78 4.04 4.57 4.83  4.94  5.56  5.47
2001-08-28   3.53   3.41 3.46 3.71 3.97 4.48 4.73  4.85  5.49  5.41
2001-08-29   3.48   3.42 3.44 3.67 3.92 4.43 4.67  4.78  5.44  5.36
2001-08-30   3.41   3.36 3.38 3.61 3.88 4.42 4.68  4.79  5.45  5.37
2001-08-31   3.40   3.37 3.41 3.64 3.91 4.46 4.72  4.85  5.47  5.39
2001-09-04   3.43   3.44 3.55 3.83 4.10 4.63 4.88  4.99  5.59  5.50
2001-09-05   3.49   3.41 3.47 3.79 4.07 4.61 4.86  4.97  5.57  5.48
2001-09-06   3.44   3.34 3.40 3.65 3.93 4.48 4.73  4.86  5.50  5.41
2001-09-07   3.40   3.27 3.29 3.53 3.82 4.39 4.67  4.80  5.45  5.39
2001-09-10   3.40   3.26 3.31 3.53 3.82 4.41 4.69  4.84  5.50  5.43
2001-09-13   2.73   2.74 2.81 2.99 3.32 4.03 4.41  4.64  5.41  5.39
2001-09-14   2.54   2.64 2.73 2.87 3.17 3.92 4.31  4.57  5.38  5.35
2001-09-17   2.47   2.59 2.72 2.96 3.30 3.99 4.38  4.63  5.44  5.41
2001-09-18   2.34   2.48 2.69 2.96 3.31 4.01 4.46  4.72  5.59  5.55
2001-09-19   2.00   2.19 2.49 2.81 3.18 3.90 4.41  4.69  5.59  5.56
2001-09-20   2.04   2.22 2.56 2.91 3.27 3.97 4.47  4.75  5.67  5.62
2001-09-21   2.12   2.25 2.53 2.91 3.27 3.94 4.43  4.70  5.62  5.59
2001-09-24   2.38   2.38 2.56 2.94 3.30 4.00 4.47  4.73  5.61  5.58
2001-09-25   2.58   2.40 2.51 2.88 3.25 3.97 4.45  4.72  5.60  5.58
2001-09-26   2.51   2.38 2.48 2.82 3.18 3.91 4.39  4.65  5.52  5.50
2001-09-27   2.34   2.38 2.43 2.78 3.15 3.87 4.33  4.58  5.46  5.45
2001-09-28   2.28   2.40 2.49 2.86 3.22 3.93 4.37  4.60  5.45  5.42
2001-10-01   2.26   2.37 2.47 2.82 3.18 3.90 4.33  4.55  5.39  5.38
2001-10-02   2.27   2.26 2.43 2.77 3.14 3.87 4.31  4.53  5.36  5.34
2001-10-03   2.21   2.23 2.38 2.77 3.14 3.86 4.29  4.50  5.34  5.32
2001-10-04   2.22   2.21 2.37 2.75 3.14 3.88 4.29  4.53  5.33  5.31
2001-10-05   2.21   2.19 2.33 2.71 3.10 3.87 4.26  4.52  5.34  5.31
2001-10-09   2.24   2.22 2.35 2.74 3.16 3.96 4.35  4.62  5.42  5.39',header=T)

uj5u.com熱心網友回復:

一個可能的解決方案:

library(tidyverse)
library(lubridate)

df %>% 
  mutate(d = day(ymd(Date)), m = month(ymd(Date)), y = year(ymd(Date))) %>% 
  group_by(m, y) %>% 
  slice_max(d) %>% 
  ungroup %>% 
  select(-d, -m, -y)

#> # A tibble: 4 × 11
#>   Date       DGS1MO DGS3MO  DGS1  DGS2  DGS3  DGS5  DGS7 DGS10 DGS20 DGS30
#>   <chr>       <dbl>  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1 2001-07-31   3.67   3.54  3.53  3.79  4.06  4.57  4.86  5.07  5.61  5.51
#> 2 2001-08-31   3.4    3.37  3.41  3.64  3.91  4.46  4.72  4.85  5.47  5.39
#> 3 2001-09-28   2.28   2.4   2.49  2.86  3.22  3.93  4.37  4.6   5.45  5.42
#> 4 2001-10-09   2.24   2.22  2.35  2.74  3.16  3.96  4.35  4.62  5.42  5.39

uj5u.com熱心網友回復:

當且僅當它比下個月的第一天早一天時,日期才是一個月的最后一天。您可以像這樣索引滿足此條件的Date向量的元素:x

is_last_of_month <- function(x) {
    x <- trunc(x)
    x == as.Date(round(as.POSIXlt(x), units = "months")) - 1
}

x <- seq(as.Date("2022-02-24"), as.Date("2022-03-05"), by = 1)
x
## [1] "2022-02-24" "2022-02-25" "2022-02-26" "2022-02-27" "2022-02-28"
## [6] "2022-03-01" "2022-03-02" "2022-03-03" "2022-03-04" "2022-03-05"

is_last_of_month(x)
## [1] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE

is_last_of_month操作trunc(x)而不是x防御小數天的可能性,因此——例如——is_last_of_month(as.Date("2022-02-28") u)對于TRUE所有u大于 0 但小于 1:

y <- as.Date("2022-02-28")   0.5
y
## [1] "2022-02-28"

y == as.Date(round(as.POSIXlt(y), units = "months")) - 1
## [1] FALSE

is_last_of_month(y)
## [1] TRUE

(嗯,“......對于所有 u大于 0 但小于 1”在浮點算術中并不完全正確,但希望我的意思很清楚。)

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/434264.html

標籤:r 日期 约会时间

上一篇:R用外語轉換日期時間格式不起作用

下一篇:如何在使用chrono庫將數字轉換為日期的cpp中的main()中正確呼叫此模板函式?

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • WebAPI簡介

    Web體系結構: 有三個核心:資源(resource),URL(統一資源識別符號)和表示 他們的關系是這樣的:一個資源由一個URL進行標識,HTTP客戶端使用URL定位資源,表示是從資源回傳資料,媒體型別是資源回傳的資料格式。 接下來我們說下HTTP. HTTP協議的系統是一種無狀態的方式,使用請求/ ......

    uj5u.com 2020-09-09 22:07:47 more
  • asp.net core 3.1 入口:Program.cs中的Main函式

    本文分析Program.cs 中Main()函式中代碼的運行順序分析asp.net core程式的啟動,重點不是剖析原始碼,而是理清程式開始時執行的順序。到呼叫了哪些實體,哪些法方。asp.net core 3.1 的程式入口在專案Program.cs檔案里,如下。ususing System; us ......

    uj5u.com 2020-09-09 22:07:49 more
  • asp.net網站作為websocket服務端的應用該如何寫

    最近被websocket的一個問題困擾了很久,有一個需求是在web網站中搭建websocket服務。客戶端通過網頁與服務器建立連接,然后服務器根據ip給客戶端網頁發送資訊。 其實,這個需求并不難,只是剛開始對websocket的內容不太了解。上網搜索了一下,有通過asp.net core 實作的、有 ......

    uj5u.com 2020-09-09 22:08:02 more
  • ASP.NET 開源匯入匯出庫Magicodes.IE Docker中使用

    Magicodes.IE在Docker中使用 更新歷史 2019.02.13 【Nuget】版本更新到2.0.2 【匯入】修復單列匯入的Bug,單元測驗“OneColumnImporter_Test”。問題見(https://github.com/dotnetcore/Magicodes.IE/is ......

    uj5u.com 2020-09-09 22:08:05 more
  • 在webform中使用ajax

    如果你用過Asp.net webform, 說明你也算是.NET 開發的老兵了。WEBform應該是2011 2013左右,當時還用visual studio 2005、 visual studio 2008。后來基本都用的是MVC。 如果是新開發的專案,估計沒人會用webform技術。但是有些舊版 ......

    uj5u.com 2020-09-09 22:08:50 more
  • iis添加asp.net網站,訪問提示:由于擴展配置問題而無法提供您請求的

    今天在iis服務器配置asp.net網站,遇到一個問題,記錄一下: 問題:由于擴展配置問題而無法提供您請求的頁面。如果該頁面是腳本,請添加處理程式。如果應下載檔案,請添加 MIME 映射。 WindowServer2012服務器,添加角色安裝完.netframework和iis之后,運行aspx頁面 ......

    uj5u.com 2020-09-09 22:10:00 more
  • WebAPI-處理架構

    帶著問題去思考,大家好! 問題1:HTTP請求和回傳相應的HTTP回應資訊之間發生了什么? 1:首先是最底層,托管層,位于WebAPI和底層HTTP堆疊之間 2:其次是 訊息處理程式管道層,這里比如日志和快取。OWIN的參考是將訊息處理程式管道的一些功能下移到堆疊下端的OWIN中間件了。 3:控制器處理 ......

    uj5u.com 2020-09-09 22:11:13 more
  • 微信門戶開發框架-使用指導說明書

    微信門戶應用管理系統,采用基于 MVC + Bootstrap + Ajax + Enterprise Library的技術路線,界面層采用Boostrap + Metronic組合的前端框架,資料訪問層支持Oracle、SQLServer、MySQL、PostgreSQL等資料庫。框架以MVC5,... ......

    uj5u.com 2020-09-09 22:15:18 more
  • WebAPI-HTTP編程模型

    帶著問題去思考,大家好!它是什么?它包含什么?它能干什么? 訊息 HTTP編程模型的核心就是訊息抽象,表示為:HttPRequestMessage,HttpResponseMessage.用于客戶端和服務端之間交換請求和回應訊息。 HttpMethod類包含了一組靜態屬性: private stat ......

    uj5u.com 2020-09-09 22:15:23 more
  • 部署WebApi隨筆

    一、跨域 NuGet參考Microsoft.AspNet.WebApi.Cors WebApiConfig.cs中配置: // Web API 配置和服務 config.EnableCors(new EnableCorsAttribute("*", "*", "*")); 二、清除默認回傳XML格式 ......

    uj5u.com 2020-09-09 22:15:48 more
最新发布
  • C#多執行緒學習(二) 如何操縱一個執行緒

    <a href="https://www.cnblogs.com/x-zhi/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2943582/20220801082530.png" alt="" /></...

    uj5u.com 2023-04-19 09:17:20 more
  • C#多執行緒學習(二) 如何操縱一個執行緒

    C#多執行緒學習(二) 如何操縱一個執行緒 執行緒學習第一篇:C#多執行緒學習(一) 多執行緒的相關概念 下面我們就動手來創建一個執行緒,使用Thread類創建執行緒時,只需提供執行緒入口即可。(執行緒入口使程式知道該讓這個執行緒干什么事) 在C#中,執行緒入口是通過ThreadStart代理(delegate)來提供的 ......

    uj5u.com 2023-04-19 09:16:49 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    <a href="https://www.cnblogs.com/huangxincheng/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/214741/20200614104537.png" alt="" /&g...

    uj5u.com 2023-04-18 08:39:04 more
  • 記一次 .NET某醫療器械清洗系統 卡死分析

    一:背景 1. 講故事 前段時間協助訓練營里的一位朋友分析了一個程式卡死的問題,回過頭來看這個案例比較經典,這篇稍微整理一下供后來者少踩坑吧。 二:WinDbg 分析 1. 為什么會卡死 因為是表單程式,理所當然就是看主執行緒此時正在做什么? 可以用 ~0s ; k 看一下便知。 0:000> k # ......

    uj5u.com 2023-04-18 08:33:10 more
  • SignalR, No Connection with that ID,IIS

    <a href="https://www.cnblogs.com/smartstar/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/u36196.jpg" alt="" /></a>...

    uj5u.com 2023-03-30 17:21:52 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:15:33 more
  • 一次對pool的誤用導致的.net頻繁gc的診斷分析

    <a href="https://www.cnblogs.com/dotnet-diagnostic/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/3115652/20230225090434.png" alt=""...

    uj5u.com 2023-03-28 10:13:31 more
  • C#遍歷指定檔案夾中所有檔案的3種方法

    <a href="https://www.cnblogs.com/xbhp/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/957602/20230310105611.png" alt="" /></a&...

    uj5u.com 2023-03-27 14:46:55 more
  • C#/VB.NET:如何將PDF轉為PDF/A

    <a href="https://www.cnblogs.com/Carina-baby/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/2859233/20220427162558.png" alt="" />...

    uj5u.com 2023-03-27 14:46:35 more
  • 武裝你的WEBAPI-OData聚合查詢

    <a href="https://www.cnblogs.com/podolski/" target="_blank"><img width="48" height="48" class="pfs" src="https://pic.cnblogs.com/face/616093/20140323000327.png" alt="" /><...

    uj5u.com 2023-03-27 14:46:16 more