2017-02-15 37 views
0

我是GIS分析師,將R用於項目。 R代碼我有點生疏。我有來自帶有日期時間戳和GPS位置的無線電狐狸的csv格式的數據。然而,在我們的研究中,時間間隔發生了變化,因此一些日期每天有3條記錄,有些只有一條記錄。例如:如何子集日期時間戳在R中每天只保留一個值?

[1] 2014-12-24 03:00:00 
[2] 2014-12-24 12:00:00 
[3] 2014-12-24 22:00:00. 

存在重複的日期時間,以及我需要薄,但它們有不同的GPS位置:

[55] 2015-11-03 12:00:00 
[56] 2015-11-03 12:00:00. 

最後,我需要每天只有一個記錄,我會把它想隨機選擇哪一個被刪除,以便結束時間值的混合。例如:

[1] 2014-12-24 12:00:00 
[2] 2014-12-25 22:00:00. 

我只是在一個單獨的列試過!duplicate功能與日期,但問題是它只返回第一個值,因此所有的時間是凌晨3:00。示例代碼:

oneaday6730 <- xFox6730[!duplicated(xFox6730$Date), drop = FALSE] 
+0

什麼是您的數據的確切結構?答案真的取決於那個。使用'dput(yourData)' – GGamba

+0

加擾你的數據的順序,去重複它,然後重新排序剩下的行。 – Gregor

+0

@GGamba我的數據來自CSV並且這些是我的列標題:Names = c(「RecordID」,「DateTime」,「Zone」, 「Northing」,「Easting」,「Type」,「DenID」,「Gender 「,」現場「, 」季節「,」時間「,」日期「,」TTF「,」海拔高度「,」Maxsnr「,」Hdop「, 」Vdop「,」Satt「,」Fix「 「,」T1「,」X22「)。 – gisatHTH

回答

0

隨着dplyr,假設mydf是你的數據:

mydf %>% 
    group_by(Date) %>% 
    sample_n(1) -> result 

請注意,我對你的數據的結構作出一些假設,特別是在Date列包含日期你想要抽樣。

+0

謝謝@GGamba。 (「xFox6730」是我的數據幀):%>%給出了一個錯誤,但是這個代碼爲我工作(「xFox6730」是我的數據幀):install.packages(「dplyr」) library(dplyr) bydate < - group_by(xFox6730,Date) oneadaytest < sample_n(bydate,1) – gisatHTH

+0

請考慮接受答案 – GGamba

相關問題