Я новичок в R, так что это может быть очень простой проблемой, но это вызывает у меня много трудностей.Подмножество дат и времени на нескольких кадрах данных в R
Я пытаюсь подмножество между двумя значениями, найденными через кадры данных, и я испытываю трудности при попытке подмножества между этими двумя значениями. Сначала я опишу, что я сделал, что работает, а затем то, что не работает.
У меня есть два кадра данных. У одного есть серия данных о шторме, включая даты штормовых событий, а другая имеет ряд данных, соответствующих разряду для многих тысяч событий мониторинга. Я пытаюсь выяснить, соответствует ли какая-либо из данных разряда в начале и конце даты и времени окончания шторма.
То, что я сделал до сих пор выглядит следующим образом:
Пример разряда данные:
X. DateTime Depth DateTime1 newcol
1 3 8/2/2013 13:15 0.038 2013-08-02 13:15:00 1375463700
2 4 8/2/2013 13:30 0.038 2013-08-02 13:30:00 1375464600
3 5 8/2/2013 13:45 0.039 2013-08-02 13:45:00 1375465500
4 6 8/2/2013 14:00 0.039 2013-08-02 14:00:00 1375466400
Пример штормовой данные:
Storm newStart newEnd
1 1 1382125500 1382130000
2 2 1385768100 1385794200
#Make a value to which the csv files are attached
CA_Storms <- read.csv(file = "CA_Storms.csv", header = TRUE, stringsAsFactors = FALSE)
CA_adj <- read.csv(file = "CA_Adj.csv", header = TRUE, stringsAsFactors = FALSE)
#strptime function (do this for all data sets)
CA_adj$DateTime1 <- strptime(CA_adj$DateTime, format = "%m/%d/%Y %H:%M")
CA_Storms$Start.time1 <- strptime(CA_Storms$Start.time, format = "%m/%d/%Y %H:%M")
CA_Storms$End.time1 <- strptime(CA_Storms$End.time, format = "%m/%d/%Y %H:%M")
#Make dates and times continuous
CA_adj$newcol <- as.numeric(CA_adj$DateTime1)
CA_Storms$newStart <- as.numeric(CA_Storms$Start.time1)
CA_Storms$newEnd <- as.numeric(CA_Storms$End.time1)
Это позволяет мне сделать следующие подмножества успешно:
CA_adj[CA_adj$newcol == "1375463700", ]
Example output:
X. DateTime Depth DateTime1 newcol
1 3 8/2/2013 13:15 0.038 2013-08-02 13:15:00 1375463700
CA_adj[CA_adj$newcol == CA_Storms[1,19], ]
X. DateTime Depth DateTime1 newcol
7403 7408 10/18/2013 15:45 0.058 2013-10-18 15:45:00 1382125500
CA_adj[CA_adj$newcol <= CA_Storms[1,20], ]
Однако, когда я пытаюсь иметь его перемещения между двумя значениями, например, в:
CA_adj[CA_adj$newcol >= CA_Storms[1,19] & CA_adj$newol <= CA_Storms[1,20], ]
он отвечает так:
[1] X. DateTime Depth DateTime1 newcol
<0 rows> (or 0-length row.names)
Я знаю, что этот вывод неверен, поскольку, через беглый взгляд через мой большой набор данных, есть по крайней мере одно значение, которое подпадает под эти критерии.
Что дает?
Пожалуйста, разместите образец данных и требуемый результат. – Soheil
Не 'CA_adj [CA_adj $ newcol> = CA_Storms [1,19] | CA_adj $ newol <= CA_Storms [1,20],] 'что вы хотите? – Robert
@ Соуэл благодарит вас за ваше предложение. Я отредактировал сообщение, так что теперь они добавлены. –