我upvoted羅蘭的答案,因爲它給了你,你要求什麼,但我不知道它給你什麼是需要最有效地使用R的設施。您應該將日期時間輸入轉換爲日期時間對象,然後從中提取您需要的內容。您還應該學習使用YYYY-MM-DD格式的日期,因爲它們對您,您的客戶以及您可能採用的任何整理功能的含義較少。
?strptime # for input of datetime variable
?strftime # for formatting output of datetime variables
a <- c("08/11/2012 15:45","08/11/2012 15:51",
"09/11/2012 09:02","10/11/2012 15:45",
"14/11/2012 15:45")
b <- c(1:5)
df1 <- data.frame(a=strptime(a, format="%d/%m/%Y %H:%M") ,b)
unique(strftime(df1$a, format="%d/%m/%Y"))
#[1] "08/11/2012" "09/11/2012" "10/11/2012" "14/11/2012"
在回答有關如何通過獨特的日期分裂的問題,我想創建一個列表與分割功能:
spl.dfrm <- split(df1, strftime(df1$a, format="%d/%m/%Y"))
您可以訪問indivdial數據框元素或者通過NUMER或名稱。名稱將是格式操作的字符值,因此第一個將是:
spl.dfrm[["08/11/2012"]]
非常感謝@DWin的建議。我現在已經完成了這個工作,並希望通過這些獨特的日期來對我的原始數據框進行子集化(即我的文件現在分爲四部分)。我試過df2 < - subset(df1,a ==「2012-11-08」) - 但這不起作用。我哪裏錯了? –
非常感謝@DWin的完美。如果我有原始數據框(Df1),並且我想擺脫某些時間之後的行(即11/11/2012 15:47),那麼我該怎麼做?我希望刪除數據幀的最後一個值(留下前4個觀察值)。 –
可以用日期時間對象進行數值比較,所以要麼說'df1 [df1 $ a1