2016-12-27 116 views
0

我正在與一個大的健康相關的數據庫。每個事件都有一個日期時間標記。例如:如何計算每個日期在數據集中出現的頻率?

Admission DateTime 
2016-12-20 03:04:05 
2016-12-20 12:07:00 
2016-12-20 13:11:15 
2016-12-21 03:04:05 
2016-12-21 03:04:05 
2016-12-21 08:08:01 
2016-12-22 05:05:05 
2016-12-22 05:10:44 
2016-12-23 03:04:25 

我想從這些數據看看某個日期時間會出現多少次。具體日子。我知道如何本輪下跌在R上的日期時間,但我有麻煩與步驟見下表去(這是我想要的結果):

Admission DateTime, Occurrences 
2016-12-20, 3 
2016-12-21, 3 
2016-12-22, 2 
2016-12-23, 1 

反正我在R中可以做到這一點,而不使用任何軟件包(安裝軟件包需要IT人員的許可,並且可能需要一段時間才能獲得)。

+1

所需輸出是一種誤導。 2016-12-20在03:04:05在數據集中不會發生3次。與接下來的兩行相同。 –

+2

[基於組的R中數據幀中的行數的計數]的可能重複(http://stackoverflow.com/questions/25293045/count-number-of-rows-in-a-data-frame-in- r基於組) – nrussell

回答

2

table應該做的伎倆:

table(as.POSIXct(c("2016-12-20 03:04:05", "2016-12-20 12:07:00", "2016-12-20 12:07:00"))) 

你可以用as.data.frame(...)解決此表達式,獲得的數據幀。

+0

是的,我試過你的方法和數據框包裝我能夠得到一個非常漂亮的數據框,唯一的問題是值是錯誤的(我做了一些簡單的SQL點檢查)。 – Alokin

+0

例如,運行該程序我將在12-20-2016獲得200個條目,但是SQL搜索會出現大約600個。難道這與我如何舍入日期時間有關嗎?我正在使用這個: 'dates < - round(My_data,「days」)' 我試圖讓Data只反映日期時間的天數部分,並且忽略它前面的小時和分鐘。 我爲混亂的內容道歉,我在這裏是新的。 – Alokin

+0

'table(as.Date(...))'適用於我的答案中的示例輸入; 'round'的問題可能來自它返回一個'POSIXlt'列表。 – Thales

-1

如果你最終使用dplyr和神聖Tidyverse:

library(dplyr) 
    dataset%>% 
    group_by(Datetime)%>% 
    summarize(n=n()) 
+1

我不認爲你爲此需要_need_'dplyr'。另外,如果你想要反轉,你可以簡單地使用'count(dataset,Datetime)'。 – Axeman

+0

我下了票投票建議tidyverse?好時光 – Rhodo

+0

使用dplyr有什麼問題?反饋有幫助 – Rhodo

相關問題